Вы можете использовать $this->method()
, чтобы проверить, какой метод запроса был использован, и показать разные правила для каждого случая:
public function rules()
{
switch($this->method())
{
case 'GET':
case 'DELETE':
{
return [];
}
case 'POST':
{
return [
'name.*' => 'required',
'description.*' => 'required',
'logo' => 'required|image|max:3000',
'logo_alt' => 'required|image|max:3000'
];
}
case 'PUT':
{
return [
'description.*' => 'required',
'logo' => 'nullable|image|max:3000',
'logo_alt' => 'nullable|image|max:3000'
];
}
case 'PATCH':
{
return [];
}
default:break;
}
}
В приведенном выше примере POST
будет для вашего создания, а PUT
будет для вашего обновления.
Обратите внимание, что я использовал nullable
для правил проверки PUT
, это говорит объекту запроса, что поле является необязательным.