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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 15:03:44  来源:igfitidea点击:

How to use variables in routes in laravel?

phplaravellaravel-5.3laravel-routing

提问by Nitish Kumar

I'm trying to build a application in laravel 5.3in 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 MemberControllerI want to use $membervariable 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);