Php 使用自定义闪存会话数据注册后的Laravel自定义重定向

Php 使用自定义闪存会话数据注册后的Laravel自定义重定向,php,laravel,laravel-5,laravel-5.8,laravel-session,Php,Laravel,Laravel 5,Laravel 5.8,Laravel Session,我正在使用Laravel 5.8构建一个应用程序,在注册或登录后,用户会被重定向到一个自定义页面,页面上会显示一个闪烁的会话数据,上面写着“欢迎!” 我注意到,RegisterController中的默认重定向行为是一个简单的字符串,不允许添加自定义重定向 * Where to redirect users after registration. * * @var string * protected $redirectTo = '/custompa

我正在使用
Laravel 5.8
构建一个应用程序,在注册或登录后,用户会被重定向到一个自定义页面,页面上会显示一个闪烁的会话数据,上面写着“欢迎!”

我注意到,
RegisterController
中的默认重定向行为是一个简单的字符串,不允许添加自定义重定向

  * Where to redirect users after registration.
     *
     * @var string
     *
      protected $redirectTo = '/custompage';
我尝试修改此默认行为,用函数替换字符串:

protected function redirectTo()
{
    /* generate URL dynamically */
     return redirect('/custompage')->with('status', 'Welcome!');
}
但我得到了警告

ErrorException(E_WARNING)标头不能包含多个 标题,检测到新行

那么,如何重定向到自定义页面并添加自定义闪存数据呢?当然,不需要修改任何供应商代码

提前感谢

将此更改为

protected function redirectTo()
{
    /* generate URL dynamicaly */
     return '/custompage';
}
它只返回路径而不返回路径,您不需要在此处使用
redirect()


并使用
session::flash()
session::put()
添加会话数据,具体取决于您的需求。

您可以通过不同的方式实现所描述的内容。一种简单的方法是在RegisterController中使用自定义路由的url,然后将该路由添加到路由中,并相应地定义控制器函数

您将保持RegisterController如下所示:

* Where to redirect users after registration.
     *
     * @var string
     *
      protected $redirectTo = '/custompage';
然后为其添加路线:

Route::any('custompage', array('as' => 'custompage', 'uses' => 'HomeController@custompage'));

并根据需要定义控制器功能。

您可以在
重定向到
方法中执行此操作。此方法应返回字符串,而不是响应对象。所以应该是这样

protected function redirectTo()
{
    /* flash data to the session here */
    session(['status', 'Welcome']);
     return '/custompage';
 }

好的,但是我应该如何添加会话数据呢?可能是使用
session::put()
session::flash()
。它的工作原理是:我添加了use-illumb\Support\Facades\session;我闪现了我需要的密码。不确定这是否是一个完美的方法,但YOLO@Enrico很高兴,我可以帮助您。问题是我已经在web.php文件中处理了路由,因为我有一个Route::resource();当我添加另一个时,它会抛出一个错误,我重定向了太多次