3

我正在构建一个应用程序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) 标头可能不包含多个标头,检测到新行

那么,如何重定向到自定义页面并添加我的自定义闪烁数据?当然无需修改任何供应商代码。

提前致谢

4

3 回答 3

3

将其更改为

protected function redirectTo()
{
    /* generate URL dynamicaly */
     return '/custompage';
}

它只返回路径而不是你在这里不需要redirect()

Session::flash()并使用或Session::put()根据您的要求添加会话数据。

于 2019-04-24T09:25:39.213 回答
1

你可以在redirectTo方法中做到这一点。此方法应返回字符串而不是响应对象。所以应该是这样的

protected function redirectTo()
{
    /* flash data to the session here */
    session(['status', 'Welcome']);
     return '/custompage';
 }
于 2019-04-24T09:56:58.093 回答
1

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

您将像这样保留 RegisterController:

* Where to redirect users after registration.
     *
     * @var string
     *
      protected $redirectTo = '/custompage';

然后为它添加一条路线:

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

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

于 2019-04-24T09:25:54.920 回答