Валидация поля, которое не передается из представления

167
19 декабря 2016, 19:32

У меня есть, к примеру, таблица Сообщений, в которой я записываю пользователя, который оставил сообщение.

CREATE TABLE test_chat.messages ( id int(11) NOT NULL AUTO_INCREMENT,
user_id int(11) NOT NULL, message text NOT NULL, //... )

соответственно, в модели правила валидации

public function rules()
{
    return [
        [['user_id', 'message'], 'required'],
    ];
}

В представлении у меня форма с полем для ввода сообщения (message).

Можно ли как-то динамически записывать в поле user_id текущего залогиненного пользователя, чтобы прошла валидация на user_id => 'required' в таких методах-событиях, как beforeValidate или что-то типа того. Я хочу, чтобы:

  1. user_id валидация на обязательное поле осталась в правилах
  2. не хочу добавлять скрытые поля в представление
  3. не хочу выносить добавление этого поля в action; если такое поле одно, еще куда ни шло, но, предположим, что таких полей у меня 10 — читаемость action-а уменьшается в разы.

    if(\Yii::$app->request->post())
        $_POST['Messages']['user_id] = \Yii::$app->user->identity->id;
           if($model->load(\Yii::$app->request->post()))
READ ALSO
PHP pthreads крашится

PHP pthreads крашится

Вот мой код по парсингу ссылокНо он почему-то крашит php:

167
Подгрузка с помощью spl_autoload( ) только файлов '*.php'

Подгрузка с помощью spl_autoload( ) только файлов '*.php'

Функции spl_autoload() в качестве параметра передается имя неизвестного класса, которое затем преобразуется в имя файлаДля этого имя класса преобразуется...

166
Какой вариант поиска строки лучше?

Какой вариант поиска строки лучше?

Есть два варианта поиска строки определеннойИ получение соответственно ключа к нему

158
Форма и её обработка на php

Форма и её обработка на php

У меня есть форма для загрузки одного файла,как можно сделать так чтобы загружались и обрабатывались сразу два??

184