Как говорит @apokryfos, трудно сказать без контекста, но если вы не хотите использовать наследование, вы можете проверить метод запроса внутри класса запроса, чтобы добавить / удалить элементы из массива проверки:
/** YourCustomFormRequest.php */
//
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rules = ['here', 'goes', 'your', 'common', 'rules'];
if ($this->isMethod('post'))
{
array_merge($rules, ['a', 'specific', 'rule']);
}
if ($this->isMethod('put')) // or 'patch'
{
array_merge($rules, ['another', 'specific', 'rule']);
}
return $rules;
}
//
Логика заключается в том, что когда вы создаете объект, вы должны сделать запрос POST
, но при обновлении вы используете PUT
/ PATCH
, поэтому мы просто получаем используемый метод для добавления /удалите условия из массива проверки.
Пока не тестировали его, но это должно сработать.
PS: Для того, чтобы получить лучший код, вы должны рассмотреть возможность отделения кодаи создавать конкретные классы.