也许一个好的方法是创建一个UsesCommonRules包含名为 的方法的 Trait,该方法getCommonRules()将返回一个包含规则的数组。
namespace App\Traits;
trait UsesCommonRules
{
public static function getCommonRules(){
return [
'date' => 'required|date',
'type' => 'in:A,B'
];
}
}
然后,您可以将任何其他规则与请求内的通用规则合并,如果您正在控制器中进行验证,则可以直接在控制器中合并。
namespace App\Http\Requests;
use App\Traits\UsesCommonRules;
use Illuminate\Foundation\Http\FormRequest;
class MyRequest extends FormRequest
{
use UsesCommonRules;
public function rules()
{
return array_merge(self::getCommonRules(), [
'city_id' => 'required'
]);
}
}
您可以在UsesCommonRulestrait 中创建更多动态函数,例如接收参数以指示应返回、排除哪些规则,或组合具有相同名称的字段的规则。