我正在使用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)标头不得包含多个 标头,检测到新行
那么,如何重定向到自定义页面并添加我的自定义刷新数据?当然无需修改任何供应商代码。
预先感谢
答案 0 :(得分:3)
将此更改为
protected function redirectTo()
{
/* generate URL dynamicaly */
return '/custompage';
}
它仅返回路径,而不返回,您在这里不需要redirect()
。
并根据需要使用Session::flash()
或Session::put()
添加会话数据。
答案 1 :(得分:1)
您可以用不同的方式实现您所描述的内容。一种简单的方法是在RegisterController中使用自定义路由的url,然后将该路由添加到您的路由并相应地定义控制器函数。
您将像这样保持RegisterController:
* Where to redirect users after registration.
*
* @var string
*
protected $redirectTo = '/custompage';
然后为其添加一条路线:
Route::any('custompage', array('as' => 'custompage', 'uses' => 'HomeController@custompage'));
并根据需要定义控制器功能。
答案 2 :(得分:1)
您可以使用redirectTo
方法进行操作。此方法应返回字符串而不是响应对象。所以应该是这样
protected function redirectTo()
{
/* flash data to the session here */
session(['status', 'Welcome']);
return '/custompage';
}