【发布时间】:2017-08-25 11:43:23
【问题描述】:
当我在 Laravel 中提交表单时,以下控制器方法会处理它:
public function update($id)
{
//handle input
return View::make('generic.success', ["message" => 'Data submitted successfully!']);
}
这很好用。但是,我不想返回像上面这样的视图,而是返回重定向,因为当我直接返回视图时,重新加载页面会重新提交表单。
所以我尝试这样做:
public function update($id)
{
//handle input
return Redirect::to('/success', ['message' => 'Data submitted successfully!']);
}
在我的路线文件中,我定义了成功路线:
Route::get('success', 'NotificationsController@success');
并设置一个通知控制器来显示视图:
class NotificationsController extends BaseController {
public function success($message)
{
return View::make('generic.success', ["message" => $message]);
}
当我运行上述代码时,我从 Laravel 收到以下错误:
InvalidArgumentException
The HTTP status code "1" is not valid.
我不知道这应该告诉我什么,谷歌显然也不知道。
有人能解释一下这个问题吗?
附言
顺便说一下,作为 Laravel 的新手,到目前为止,我注意到 Laravel 的错误报告对用户非常不友好,因为它没有告诉我我的路由器、控制器或权限有问题,而是显示这些通用的没有人道解释其原因的错误。有没有比依赖这个更好的方法来解决 Laravel 中的问题?
比如在上面的事件中,错误报告指向了这行代码……
public function setStatusCode($code, $text = null)
{
$this->statusCode = $code = (int) $code;
if ($this->isInvalid()) {
throw new \InvalidArgumentException(sprintf('The HTTP status code "%s" is not valid.', $code));
}
...这完全没用,因为它所做的只是向我显示打印错误本身的代码。
【问题讨论】:
-
当你使用
redirect::to()函数时,它显示错误? -
是的。当我返回一个视图(或其他任何东西)时,它很好。