laravel 如何在laravel的路由中使用变量?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/41466153/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to use variables in routes in laravel?
提问by Nitish Kumar
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:
我正在尝试构建一个应用程序,laravel 5.3
在该应用程序中我从请求方法中获取变量,然后尝试将该变量通过重定向传递到路由。我想在我的视图中使用这个变量,这样我就可以显示变量的值。我目前正在这样做:
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);
Now in MemberController
I want to use $member
variable and display this into my view:
现在MemberController
我想使用$member
变量并将其显示在我的视图中:
public function memberinfo()
{
return view('member.memberinfo', ['member' => $member]);
}
But I'm getting an error in the routes files
但是我在路由文件中遇到错误
Call to undefined method Illuminate\Routing\Route::with()
调用未定义的方法 Illuminate\Routing\Route::with()
Help me out, how can I achieve this.
帮帮我,我怎样才能做到这一点。
采纳答案by Alexey Mezenin
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:
当您使用 时redirect()->with()
,您将数据保存到会话中。因此,要从控制器或视图中的会话中获取数据,您可以使用session()
帮助程序:
$member = session('member'); // In controller.
{{ session('member')['xyz'] }} // In view.
Alternatively, you could pass variables as string parameters.
或者,您可以将变量作为字符串参数传递。
Redirect:
重定向:
return redirect('member/memberinfo/xyz/abc')
Route:
路线:
Route::get('/member/memberinfo/{xyz}/{abc}', 'MemberController@memberinfo');
Controller:
控制器:
public function memberinfo($xyz, $abc)
{
return view('member.memberinfo', compact('xyz', 'abc'));
}
回答by Robin Dirksen
You need to replace =>
with ,
您需要替换=>
为,
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); // => needs to be replaced with ,
}
Hope this works!
希望这有效!
回答by Ilya Yaremchuk
Replace line
更换线
return redirect('member/memberinfo')->with('member' => $member);
to
到
return redirect('member/memberinfo')->with('member', $member);
......
......
回答by Kris Roofe
You can use like this:
你可以这样使用:
route:
路线:
Route::get('/member/memberinfo', 'MemberController@memberinfo')
and the redirect:
和重定向:
return redirect('member/memberinfo')->with('member', $member);