以下是一个标准的验证类。
代码语言:javascript复制namespace AppHttpRequests;
use IlluminateFoundationHttpFormRequest;
class ArticleRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
];
}
public function messages()
{
return [
'title.required' => '标题必填',
'title.unique' => '标题已存在',
'title.max' => '标题长度不能超过:max',
‘body.required’ => '内容必填',
];
}
}
一般我们在控制器中可以以依赖注入的方式启用它,例如:
代码语言:javascript复制 use AppHttpRequestsArticleRequest;
class ArticleController extends Controller
{
public function create(Request $request)
{
return view('article.create');
}
public function store(ArticleRequest $request)
{
//如进入到这里说明参数验证通过,可以继续添加操作
...
}
}
当然,如果非要把添加的展示与保存都写在create方法中,通过判断区分哪个操作,有什么办法呢?当然有,代码如下:
代码语言:javascript复制 class ArticleController extends Controller
{
public function create(Request $request)
{
if ($request->ajax() && $request->isMethod('POST')) {
//添加保存逻辑
//手动启用表单验证类
$validator = app('AppHttpRequestsArticleRequest');
}
//添加展示页面
return view('article.create');
}
}
转载来源:https://www.cnblogs.com/luyuqiang/p/14990974.html