Проверка запроса с использованием наблюдателей - PullRequest
1 голос
/ 25 сентября 2019

С помощью наблюдателя я добавляю дополнительный контент в модель / базу данных.Это работает без проблем !!

Теперь я хотел бы проверить входящий запрос, но, к сожалению, я не знаю, как вставить проверку или правила в наблюдателя.

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';
    }
}

1 Ответ

0 голосов
/ 25 сентября 2019

Прежде всего, я думаю, что вам следует избегать использования Model Observer для проверки запросов.Для этого есть и другие функции, такие как Проверка запроса формы .

. С другой стороны, вы можете вручную создать средство проверки , которое запускается внутри вашего наблюдателя.(или любая другая часть вашего кода).Вот пример, следующий за кодом вашего вопроса:

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
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...