我有此验证请求
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
class CreateUserRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'email' => 'required|email|unique:users',
'password' => 'required|confirmed|min:6',
'full_name' => 'required',
'address' => 'required',
'phone' => 'required|numeric',
'family_name' => 'required',
'family_address' => 'required',
'family_phone' => 'required|numeric',
'idcard' => 'required|image',
];
}
}
我可以在我的控制器方法中使用它
public function register(CreateUserRequest $request){
}
现在我有其他形式需要验证,但表单有附加字段。
我知道,我可以在CreateUserRequest + new field中创建包含字段的新Request。
但我认为这是不好的方式。
那么我如何扩展CreateUserRequest并添加其他字段?
所以我可以在其他控制器方法中使用
public function othermethod(otherCreateUserRequest $request){
}
任何帮助表示感谢。
答案 0 :(得分:2)
您可以像这样扩展CreateUserRequest类:
<?php
namespace App\Http\Requests;
use CreateUserRequest;
Class OtherCreateUserRequest extends CreateUserRequest {
public function rules()
{
return parent::rules() + [
'additional' => 'rule',
];
}
}
答案 1 :(得分:0)
我没有尝试过,但您可以继承Base Request Class并将其父级的规则方法称为:
namespace App\Http\Requests;
Class OtherCreateUserRequest extends CreateUserRequest {
public function rules()
{
return array_merge(parent::rules(), [
'input' => 'more_rules',
]);
}
}