如何在laravel中的路由中使用变量?

How to use variables in routes in laravel?

我正在尝试在 laravel 5.3 中构建一个应用程序,在其中我从请求方法中获取变量,然后尝试将该变量传递到路由的重定向中。我想在我的视图中使用这个变量,这样我就可以显示变量的值。我目前正在这样做:

在我的控制器中,我收到这样的请求:

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

现在我的路线如下:

Route::get('/member/memberinfo', 'MemberController@memberinfo')->with('member', $member);

现在 MemberController 我想使用 $member 变量并将其显示到我的视图中:

public function memberinfo()
{
  return view('member.memberinfo', ['member' => $member]);
}

但是我在路由文件中遇到错误

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

帮帮我,我怎样才能做到这一点。

你可以这样使用:

路线:

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

和重定向:

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

当您使用 redirect()->with() 时,您正在将数据保存到会话中。因此,要从控制器中的会话中获取数据甚至查看,您可以使用 session() helper:

$member = session('member'); // In controller.

{{ session('member')['xyz'] }} // In view.

或者,您可以将变量作为字符串参数传递。

重定向:

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

您需要将 => 替换为 ,

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 ,
}

希望这有效!

替换行

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

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

......