Найдено 905 результатов

yiiliveext
2019.08.16, 21:43
Форум: REST API (Yii 2.x)
Тема: REST и связи
Ответы: 2
Просмотры: 3108

Re: REST и связи

ElisDN писал(а): 2019.08.16, 17:21 Никак. Только самому проставлять with(...). ActiveRecord не загружает связи по JOIN-ам.
Ручками это делать не обязательно. Просто в action пройтись по fields и expand с isRelation(...) и добавить соответствующие with(...) к запросу.
yiiliveext
2019.08.16, 10:07
Форум: Общие вопросы (Yii 2.x)
Тема: Изменение компонента 'db', для выполнения миграций
Ответы: 5
Просмотры: 1238

Re: Изменение компонента 'db', для выполнения миграций

UP: если в конфиге добавить данный код, тогда можно не переопределять метод init. И без этого все работает Естественно. В методе init переопределяется свойство db для каждой отдельной миграции. В controllerMap вы определяете глобально для контроллера, который потом создает классы миграций с этим па...
yiiliveext
2019.08.15, 14:44
Форум: Общие вопросы (Yii 2.x)
Тема: Изменение компонента 'db', для выполнения миграций
Ответы: 5
Просмотры: 1238

Re: Изменение компонента 'db', для выполнения миграций

Добавьте в конфиг

Код: Выделить всё

'controllerMap' => [
    'migrate' => [
        'class' => '\yii\console\controllers\MigrateController',
        'db' => 'db2'
    ],
],
yiiliveext
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 с м...
yiiliveext
2019.08.15, 11:18
Форум: Общие вопросы (Yii 2.x)
Тема: Связи текущей Модели не передаются в email темплейт [Решено]
Ответы: 20
Просмотры: 4420

Re: Связи текущей Модели не передаются в email темплейт

У меня возникнет проблема, так как на event created при условии что пэмент "лично в руки", я получу такую же проблему как было изначально. Позиции еще не сохранены а event уже сработал на ордере. Если вы после $transaction->commit() сделаете так: $orderStatusEvent = \Yii::createObject(['c...
yiiliveext
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');
yiiliveext
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 Если триггерить в контроллере, после коммита, то почему будет криво работать.
В контроллере триггерить событие сущности?
Если вас это смущает, можете создать это событие в контроллере.
yiiliveext
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...
yiiliveext
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
Обычно требуется указывать какие поля изменились.
yiiliveext
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, тригерите его при смене статуса и повесьте обработчик который будет рассылать извещения в зависимости от статуса.
С транзакциями это криво работает.
Если триггерить в контроллере, после коммита, то почему будет криво работать.
yiiliveext
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...
yiiliveext
2019.08.14, 17:12
Форум: Общие вопросы (Yii 2.x)
Тема: События в yii2
Ответы: 47
Просмотры: 10845

Re: События в yii2

svil писал(а): 2019.08.14, 17:02 В Базу должны записываться как int
Тогда так:

Код: Выделить всё

public function behaviors()
    {
        return [
           TimestampBehavior::class
        ];
    }
yiiliveext
2019.08.14, 14:39
Форум: Общие вопросы (Yii 2.x)
Тема: События в yii2
Ответы: 47
Просмотры: 10845

Re: События в yii2

svil писал(а): 2019.08.14, 14:28 дату текущую не видит
В каком формате у вас поля created_at, updated_at?
yiiliveext
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()'),
        ];
    }
yiiliveext
2019.08.14, 09:29
Форум: Общие вопросы (Yii 2.x)
Тема: Связи текущей Модели не передаются в email темплейт [Решено]
Ответы: 20
Просмотры: 4420

Re: Связи текущей Модели не передаются в email темплейт

Сделайте метод публичным и дёргайте $order->sendUserEmail() из контроллера после всех сохранений. Хотелось чтоб это все было на автомате, у меня метод в модели который чекает статус заказа и в зависимости от него делает нотификацию юзеру или админу. Сделайте событие в модели EVENT_ORDER_STATUS_CHAN...
yiiliveext
2019.08.14, 09:12
Форум: Общие вопросы (Yii 2.x)
Тема: События в yii2
Ответы: 47
Просмотры: 10845

Re: События в yii2

svil писал(а): 2019.08.14, 09:09 В модел event дату настроить? Потому что при save() дату добавляло текущую через TimestampBehavior::className()
Либо сделайте вариант с пустым afterSave, ли бо по методу Дмитрия вставляйте явно через time()
yiiliveext
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) { }
yiiliveext
2019.08.13, 22:12
Форум: Общие вопросы (Yii 2.x)
Тема: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса
Ответы: 5
Просмотры: 1596

Re: Тестовая конфигурация swiftmailer для отправки почты на заданные адреса

Ну это уже внутренняя логика. В мэйлерах могут быть разные конфигурации для теста и для прода. Например конфигурация транспорта. Тогда да, согласен. Но я все же предпочитаю в таком случат делать через события, это более универсально. В вашем случае, если кто-то создаст свой мейлер в модуле, то ваши...
yiiliveext
2019.08.13, 22:05
Форум: Общие вопросы (Yii 2.x)
Тема: События в yii2
Ответы: 47
Просмотры: 10845

Re: События в yii2

Вы можете установить set_time_limit (0), но если у вас запрос не укладывается в 30 секунд, то вам скорее нужно пересмотреть архитектуру приложения.