How to use variables in routes in laravel?

删除回忆录丶 提交于 2020-03-02 10:16:28

问题


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);

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

Call to undefined method Illuminate\Routing\Route::with()

Help me out, how can I achieve this.


回答1:


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.

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'));
}



回答2:


You can use like this:

route:

Route::get('/member/memberinfo', 'MemberController@memberinfo')

and the redirect:

return redirect('member/memberinfo')->with('member', $member);



回答3:


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!




回答4:


Replace line

return redirect('member/memberinfo')->with('member' => $member);

to

return redirect('member/memberinfo')->with('member', $member);

......



来源:https://stackoverflow.com/questions/41466153/how-to-use-variables-in-routes-in-laravel

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!