如何在Laravel的路由中使用变量? [英] How to use variables in routes in laravel?
问题描述
我试图在laravel 5.3
中构建一个应用程序,在该应用程序中我从请求方法获取变量,然后尝试将该变量以重定向方式传递给路由.我想在我的视图中使用此变量,以便能够显示变量的值.我目前正在这样做:
I'm trying to build a application in laravel 5.3
in which I get the variable from request method and then trying to pass that variable in a redirect to the routes. I want to use this variable in my view so that I can be able to display the value of variable. I'm currently doing this:
在我的控制器中,我收到这样的请求:
In my controller I'm getting the request like this:
public function register(Request $request)
{
$data = request->only('xyz','abc');
// Do some coding
.
.
$member['xyz'] = $data['xyz'];
$member['abc'] = $data['abc'];
return redirect('member/memberinfo')->with('member' => $member);
}
现在,我已经按照路线行驶了:
Now I've following in my routes:
Route::get('/member/memberinfo', 'MemberController@memberinfo')->with('member', $member);
现在在MemberController
中,我想使用$member
变量并将其显示在我的视图中:
Now in MemberController
I want to use $member
variable and display this into my view:
public function memberinfo()
{
return view('member.memberinfo', ['member' => $member]);
}
但是我在路由文件中出现了错误
But I'm getting an error in the routes files
调用未定义的方法Illuminate \ Routing \ Route :: with()
Call to undefined method Illuminate\Routing\Route::with()
帮帮我,我如何实现这一目标.
Help me out, how can I achieve this.
推荐答案
使用redirect()->with()
时,会将数据保存到会话中.因此,要从控制器或什至视图中的会话中获取数据,可以使用session()
帮助器:
When you're using redirect()->with()
, you're saving data to the session. So to get data from the session in controller or even view you can use session()
helper:
$member = session('member'); // In controller.
{{ session('member')['xyz'] }} // In view.
或者,您可以将变量作为字符串参数传递.
Alternatively, you could pass variables as string parameters.
重定向:
return redirect('member/memberinfo/xyz/abc')
路线:
Route::get('/member/memberinfo/{xyz}/{abc}', 'MemberController@memberinfo');
控制器:
public function memberinfo($xyz, $abc)
{
return view('member.memberinfo', compact('xyz', 'abc'));
}
这篇关于如何在Laravel的路由中使用变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!