借助观察者,我将其他内容添加到模型/数据库中。 这没有问题!
现在,我想验证传入的请求,但是不幸的是,我不知道如何在观察者中插入验证或规则。
class Customer
{
/**
* @var array
*/
protected $rules = [
'firstname' => 'numeric',
'name1' => 'string',
//'client_number' => 'required|string|unique:customers',
];
/**
* Listen to the updated event.
*
* @param Model $customer
* @return void
*/
public function saving(Model $customer)
{
if (request('firstname'))
{
if (request('firstname') != null)
{
$customer->firstname = request('firstname');
}
else
{
$customer->firstname = NULL;
}
}
$customer->client_number = '123456789';
}
}
答案 0 :(得分:0)
首先,我认为您应该避免使用Model Observer进行请求验证。 laravel为此提供了其他功能,例如Form request validation。
另一方面,您可以manually create a validator在观察者(或代码的任何其他部分)中运行。这是一个遵循您问题代码的示例:
class Customer
{
/**
* @var array
*/
protected $rules = [
'firstname' => 'numeric',
'name1' => 'string',
//'client_number' => 'required|string|unique:customers',
];
/**
* Listen to the updated event.
*
* @param Model $customer
* @return void
*/
public function saving(Model $customer)
{
$validator = Validator::make(request()->all(), $this->rules);
if ($validator->fails()) {
// Fail logic
} else {
// Success logic
}
}
}