Ручками это делать не обязательно. Просто в action пройтись по fields и expand с isRelation(...) и добавить соответствующие with(...) к запросу.
Найдено 905 результатов
- 2019.08.16, 21:43
- Форум: REST API (Yii 2.x)
- Тема: REST и связи
- Ответы: 2
- Просмотры: 3108
- 2019.08.16, 10:07
- Форум: Общие вопросы (Yii 2.x)
- Тема: Изменение компонента 'db', для выполнения миграций
- Ответы: 5
- Просмотры: 1238
Re: Изменение компонента 'db', для выполнения миграций
UP: если в конфиге добавить данный код, тогда можно не переопределять метод init. И без этого все работает Естественно. В методе init переопределяется свойство db для каждой отдельной миграции. В controllerMap вы определяете глобально для контроллера, который потом создает классы миграций с этим па...
- 2019.08.15, 14:44
- Форум: Общие вопросы (Yii 2.x)
- Тема: Изменение компонента 'db', для выполнения миграций
- Ответы: 5
- Просмотры: 1238
Re: Изменение компонента 'db', для выполнения миграций
Добавьте в конфиг
Код: Выделить всё
'controllerMap' => [
'migrate' => [
'class' => '\yii\console\controllers\MigrateController',
'db' => 'db2'
],
],
- 2019.08.15, 12:30
- Форум: Общие вопросы (Yii 2.x)
- Тема: Связи текущей Модели не передаются в email темплейт [Решено]
- Ответы: 20
- Просмотры: 4420
Re: Связи текущей Модели не передаются в email темплейт
1. Для создания событий \Yii::createObject не нужен. В данном случае ради краткости. Можно было в две строчки: $orderStatusEvent = new OrderStatusEvent(); $orderStatusEvent->status = $order->order_status_id; 2. Из одного объекта триггерить события другого - костыль. Зря не сделали метод trigger с м...
- 2019.08.15, 11:18
- Форум: Общие вопросы (Yii 2.x)
- Тема: Связи текущей Модели не передаются в email темплейт [Решено]
- Ответы: 20
- Просмотры: 4420
Re: Связи текущей Модели не передаются в email темплейт
У меня возникнет проблема, так как на event created при условии что пэмент "лично в руки", я получу такую же проблему как было изначально. Позиции еще не сохранены а event уже сработал на ордере. Если вы после $transaction->commit() сделаете так: $orderStatusEvent = \Yii::createObject(['c...
- 2019.08.15, 10:44
- Форум: Общие вопросы (Yii 2.x)
- Тема: Изменение компонента 'db', для выполнения миграций
- Ответы: 5
- Просмотры: 1238
Re: Изменение компонента 'db', для выполнения миграций
Код: Выделить всё
public function init()
{
$this->db = 'db2';
parent::init();
}
- 2019.08.15, 10:41
- Форум: Общие вопросы (Yii 2.x)
- Тема: Склеивание вывода в одну страницу
- Ответы: 3
- Просмотры: 1191
Re: Склеивание вывода в одну страницу
Рендерите в контроллере общую вьюху
Внутри общей вьюхи рендерите частичные представления
Код: Выделить всё
$this->render('dashboard',['fabrika'=>$fabrika]);
Код: Выделить всё
$this->render('dashboard_n',['fabrika'=>$fabrika]);
$this->render('dashboard_af');
- 2019.08.14, 20:11
- Форум: Общие вопросы (Yii 2.x)
- Тема: Связи текущей Модели не передаются в email темплейт [Решено]
- Ответы: 20
- Просмотры: 4420
Re: Связи текущей Модели не передаются в email темплейт
Если вас это смущает, можете создать это событие в контроллере.ElisDN писал(а): ↑2019.08.14, 19:57В контроллере триггерить событие сущности?yiiliveext писал(а): ↑2019.08.14, 18:26 Если триггерить в контроллере, после коммита, то почему будет криво работать.
- 2019.08.14, 19:07
- Форум: Общие вопросы (Yii 2.x)
- Тема: События в yii2
- Ответы: 47
- Просмотры: 10845
Re: События в yii2
Как-то так: Event::on( \yii\db\ActiveRecord::class, \yii\db\ActiveRecord::EVENT_AFTER_INSERT, function ($event) { $ev = new \common\models\Event(); $ev->title = get_class($event->sender); $ev->event_type = 'insert'; $ev->model_id = $event->sender->id; $ev->save(); } ); Event::on( \yii\db\ActiveRecor...
- 2019.08.14, 18:58
- Форум: Общие вопросы (Yii 2.x)
- Тема: События в yii2
- Ответы: 47
- Просмотры: 10845
Re: События в yii2
Обычно требуется указывать какие поля изменились.svil писал(а): ↑2019.08.14, 18:41 Добавила с 2 таблиц записи и в Event они пояились , но я не могу указать какие поля добавились
http://ilin.itcrk.ru/yii2_bz_events/web/event/index
- 2019.08.14, 18:26
- Форум: Общие вопросы (Yii 2.x)
- Тема: Связи текущей Модели не передаются в email темплейт [Решено]
- Ответы: 20
- Просмотры: 4420
Re: Связи текущей Модели не передаются в email темплейт
Если триггерить в контроллере, после коммита, то почему будет криво работать.ElisDN писал(а): ↑2019.08.14, 18:20С транзакциями это криво работает.yiiliveext писал(а): ↑2019.08.14, 09:29 Сделайте событие в модели EVENT_ORDER_STATUS_CHANGED, тригерите его при смене статуса и повесьте обработчик который будет рассылать извещения в зависимости от статуса.
- 2019.08.14, 17:53
- Форум: Общие вопросы (Yii 2.x)
- Тема: События в yii2
- Ответы: 47
- Просмотры: 10845
Re: События в yii2
Ошибка Database Exception – yii\db\Exception SQLSTATE[HY000]: General error: 1364 Field 'created_at' doesn't have a default value The SQL being executed was: INSERT INTO `event` (`title`) VALUES ('тестирую событие') Error Info: Array ( [0] => HY000 [1] => 1364 [2] => Field 'created_at' doesn't have...
- 2019.08.14, 17:12
- Форум: Общие вопросы (Yii 2.x)
- Тема: События в yii2
- Ответы: 47
- Просмотры: 10845
Re: События в yii2
- 2019.08.14, 14:39
- Форум: Общие вопросы (Yii 2.x)
- Тема: События в yii2
- Ответы: 47
- Просмотры: 10845
- 2019.08.14, 10:30
- Форум: Общие вопросы (Yii 2.x)
- Тема: События в yii2
- Ответы: 47
- Просмотры: 10845
Re: События в yii2
Код: Выделить всё
public function behaviors()
{
return [
'class' => TimestampBehavior::class,
'createdAtAttribute' => 'created_at',
'updatedAtAttribute' => 'updated_at',
'value' => new Expression('NOW()'),
];
}
- 2019.08.14, 09:29
- Форум: Общие вопросы (Yii 2.x)
- Тема: Связи текущей Модели не передаются в email темплейт [Решено]
- Ответы: 20
- Просмотры: 4420
Re: Связи текущей Модели не передаются в email темплейт
Сделайте метод публичным и дёргайте $order->sendUserEmail() из контроллера после всех сохранений. Хотелось чтоб это все было на автомате, у меня метод в модели который чекает статус заказа и в зависимости от него делает нотификацию юзеру или админу. Сделайте событие в модели EVENT_ORDER_STATUS_CHAN...
- 2019.08.14, 09:12
- Форум: Общие вопросы (Yii 2.x)
- Тема: События в yii2
- Ответы: 47
- Просмотры: 10845
- 2019.08.14, 09:10
- Форум: Общие вопросы (Yii 2.x)
- Тема: События в yii2
- Ответы: 47
- Просмотры: 10845
Re: События в yii2
Потому что $ev->save() тоже генерирует событие и скрипт зацикливается. Вставляйте через Yii::$app->db->createCommand()->insert('events', ['title' => ...])->execute(). Можно просто добавить в модель Event пустой afterSave public function afterSave($insert, $changedAttributes) { }
- 2019.08.13, 22:12
- Форум: Общие вопросы (Yii 2.x)
- Тема: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
- Ответы: 5
- Просмотры: 1596
Re: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
Ну это уже внутренняя логика. В мэйлерах могут быть разные конфигурации для теста и для прода. Например конфигурация транспорта. Тогда да, согласен. Но я все же предпочитаю в таком случат делать через события, это более универсально. В вашем случае, если кто-то создаст свой мейлер в модуле, то ваши...
- 2019.08.13, 22:05
- Форум: Общие вопросы (Yii 2.x)
- Тема: События в yii2
- Ответы: 47
- Просмотры: 10845
Re: События в yii2
Вы можете установить set_time_limit (0), но если у вас запрос не укладывается в 30 секунд, то вам скорее нужно пересмотреть архитектуру приложения.