使用参数重定向到 Laravel 中的控制器并在第二个控制器中获取参数

Posted

技术标签:

【中文标题】使用参数重定向到 Laravel 中的控制器并在第二个控制器中获取参数【英文标题】:Redirecting with parameters to a controller in Laravel and picking up the parameters in the second controller 【发布时间】:2017-03-15 05:19:42 【问题描述】:

我希望将参数重定向到 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】:

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

public function quote($enquiry, Request $request)

  echo $enquiry;

你的路线应该是:

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

或者,如果希望您的 enquiry 参数是可选的,那么您可以这样做:

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

  echo $enquiry;

你的路线应该是:

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

【讨论】:

谢谢,这确实有效,出于安全和访问原因,我决定通过会话传递数据。

以上是关于使用参数重定向到 Laravel 中的控制器并在第二个控制器中获取参数的主要内容,如果未能解决你的问题,请参考以下文章

如何将没有参数的 Laravel 路由重定向到具有默认参数的控制器方法?

使用 URL 参数将 www 重定向到 Laravel 中的非 www

Laravel 5.4 登录后重定向到自定义 url

如何通过重定向将数据传递到laravel中的视图

如何使用 Laravel 5.5 在控制器中使用两个参数进行重定向

Laravel 5.5登录后重定向到特定路由