将参数重定向到Laravel中的控制器并拾取第二个控制器中的参数

时间:2016-11-02 00:40:58

标签: php laravel controller laravel-routing laravel-5.3

我希望将参数重定向到Laravel中的控制器并在第二个控制器中拾取参数。

我按照文档设置在第一个控制器中,链接如下。

https://laravel.com/docs/5.3/redirects#redirecting-controller-actions

重定向

  return redirect()->action(
    'quote', ['enquiry' =>  $request->final_enquiry_id]
);

路线

Route::post('/quote', [
    'as' => 'quote',
    'uses' => 'Quote_Controller@quote'
]);

第二个控制器

  public function quote(Request $request)
  {
    echo $enquiry;

然而,这当前返回未定义的变量。

这是最好的方法,如果是这样,我哪里错了?

1 个答案:

答案 0 :(得分:3)

你的第二个控制器应该是:

public function quote($enquiry, Request $request)
{
  echo $enquiry;

你的路线应该是:

Route::post('/quote/{enquiry}', [
  'as' => 'quote',
  'uses' => 'Quote_Controller@quote'
]);

或者,如果您想要enquiry param是可选的,那么您可以这样做:

public function quote($enquiry = null, Request $request)
{
  echo $enquiry;

你的路线应该是:

Route::post('/quote/{enquiry?}', [
  'as' => 'quote',
  'uses' => 'Quote_Controller@quote'
]);