Php 重定向回自定义请求类中的错误和输入:Laravel 5
我有一些原始代码,如下所示,在MySQL数据库中执行表单验证和保存过程 原始代码Php 重定向回自定义请求类中的错误和输入:Laravel 5,php,laravel-5,laravel-5.1,Php,Laravel 5,Laravel 5.1,我有一些原始代码,如下所示,在MySQL数据库中执行表单验证和保存过程 原始代码 public function store(Request $request) { $v = \Validator::make($request->all(), [ 'Category' => 'required|unique:tblcategory|max:25|min:5' ]); if ($v->fails()) { return \
public function store(Request $request)
{
$v = \Validator::make($request->all(), [
'Category' => 'required|unique:tblcategory|max:25|min:5'
]);
if ($v->fails()) {
return \Redirect::back()
->withErrors($v)
->withInput();
}
...
//code to save the record in database is here....
...
}
并修改了上述函数,现在看起来如下所示
public function store(CategoryRequest $request)
{
...
//code to save the record in database is here....
...
}
下面是请求类
class CategoryRequest extends Request
{
protected $redirect = \Redirect::back()->withErrors($v)->withInput();
public function authorize()
{
return false;
}
public function rules()
{
return [
'Category' => 'required|unique:tblcategory|max:25|min:5'
];
}
}
错误详细信息
class CategoryRequest extends Request
{
protected $redirect = \Redirect::back()->withErrors($v)->withInput();
public function authorize()
{
return false;
}
public function rules()
{
return [
'Category' => 'required|unique:tblcategory|max:25|min:5'
];
}
}
语法错误,意外的“(”,应为“,”或“;”
此错误出现在下面的行中
protected $redirect = \Redirect::back()->withErrors($v)->withInput();
我遗漏了什么吗?有多种方法可以告诉Laravel在验证失败时该怎么做。一种方法是覆盖response()方法,并按如下方式设置您自己的响应
class CategoryRequest extends Request
{
public function response(array $errors){
return \Redirect::back()->withErrors($errors)->withInput();
}
public function authorize()
{
return false;
}
public function rules()
{
return [
'Category' => 'required|unique:tblcategory|max:25|min:5'
];
}
}
Laravel的默认响应是将您重定向到带有错误和输入值的上一页,因此您可能不需要上述代码。在Laravel 8中,上述内容已更改,因此
响应
函数对我不起作用,getRedirectUrl
另一方面起作用。下面是一个代码片段
protected function getRedirectUrl()
{
$url = $this->redirector->getUrlGenerator();
return $url->previous();
}
定义属性时不能执行代码。属性必须是静态值,如字符串/数组等。我应该在哪里编写代码以重定向回错误和输入?我相信默认情况下,Laravel会将您重定向回上一页并返回错误。您可以使用响应方法定义错误响应。我有通过一个如何定义自定义响应的示例给出了答案。响应/验证类功能非常强大,值得一试。如上所述,属性不能用动态初始值定义,如果需要动态初始化,则应在构造函数中完成。规则函数只是PHP,因此您可以ake规则执行您希望它们执行的任何操作,只要它返回一个规则数组。