如何在Laravel 5.2中扩展验证表单请求


How to extend validation form request in Laravel 5.2?

我有这个验证请求

<?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 +新字段中包含新的请求。

但我认为这是不好的方式。

那么我如何扩展CreateUserRequest并添加其他字段?

所以我可以在其他控制器方法中使用像这样的
public function othermethod(otherCreateUserRequest $request){
}

感谢您的帮助。

可能是这样的参考mattstaufer laravel 5.0表单请求

你可以这样扩展你的CreateUserRequest类:

<?php
namespace App'Http'Requests;
use CreateUserRequest;
Class OtherCreateUserRequest extends CreateUserRequest {
    public function rules()
    {
        return parent::rules() + [
            'additional' => 'rule',
        ];
    }
}

我没有尝试过,但你可以继承基请求类并调用它的父规则方法:

namespace App'Http'Requests;
Class OtherCreateUserRequest extends CreateUserRequest {
    public function rules()
    {
        return array_merge(parent::rules(), [
            'input' => 'more_rules',
        ]);
    }
}