@yii2ru

Страница 517 из 1721
Vladislav
21.08.2017
09:58:53
никак

beforeAction запускается всегда

но ты можешь в before Action проверять какой сейчас экшн и делать ретурн true на нужные

но это говнокод

Google
Vladislav
21.08.2017
09:59:23
так делать нельзя

Anton
21.08.2017
10:05:23
понял, спасибо

?M͘͜r͜͠.̧͜͢ ̧͏͜͠Н͏͜я̷̷̛҉м̴̶̴̨̢ ҉̨͟͡Н̷̢̀я͟м̵̀
21.08.2017
10:07:56
так делать нельзя
а какая альтернатива?

Vladislav
21.08.2017
10:08:05
а какая задача?

если ты пытаешься решить своб задачу отключением запуска beforeAction, значит задача неправильная

нужно подумать побольше

Anton
21.08.2017
10:10:27
структура проекта неправильная, потому что beforeAction отвечает за проверку авторизации

Vladislav
21.08.2017
10:15:05
отключи проверку авторизации для определенных действий через behaviours

Anton
21.08.2017
10:21:25
ну так в beforeAction и стоит банальная проверка авторизации через кастомные методы и что бы отключить проверку мне надо отключить beforeAction

Vladislav
21.08.2017
10:24:40
а зачем ты делаешь проверку авторизации в beforeAction, если для этого существует behavior

а если ты уже наговнокодил и сунул это в befaoreAction, то просто перед проверкой авторизации глянь, какой сейчас экшн будет

и для него не вызывай проверку авторизации

но beforeAction отключать точно не надо

Google
Anton
21.08.2017
10:25:51
я этого не делал, проект от прошлого программера перешел да, так и сделал уже, спасибо

Vladislav
21.08.2017
10:26:13
ок

я бы переписал, пока не пздно

перенести авторизацию не сложно

там не особо много логики по идее

?M͘͜r͜͠.̧͜͢ ̧͏͜͠Н͏͜я̷̷̛҉м̴̶̴̨̢ ҉̨͟͡Н̷̢̀я͟м̵̀
21.08.2017
10:26:49
Vladislav
21.08.2017
10:26:50
как правило

?M͘͜r͜͠.̧͜͢ ̧͏͜͠Н͏͜я̷̷̛҉м̴̶̴̨̢ ҉̨͟͡Н̷̢̀я͟м̵̀
21.08.2017
10:27:03
там событие инитится на 1 строке, а на следующей уже триггер

ну это чтоб ты понимал архитектуру общую проджекта)

Sergio
21.08.2017
10:44:20
всем привет. достался проект на доработку, в Yii2 только начал разбираться. развернул, композер апдейт сделал... есть какаято команда, для консоли, чтобы проинициализировать первоначальную структуру БД?

Oleksii
21.08.2017
10:46:26
php init

Sergio
21.08.2017
10:46:27
... init Create an empty Git repository or reinitialize an existing one ... зачем гит инициализировать-то?

Oleksii
21.08.2017
10:46:29
cсори)

Айбулат
21.08.2017
10:46:58
для БД: yii migrate

для проекта в целом, с выбором версии(dev, prod) - yii init

cd в папку с файлами init.php, yii - корень проекта

и попробуй php init/php yii init/yii init

Roman
21.08.2017
11:35:01
Ребят, подскажите можно ли как-то в ListView сделать так, чтобы первые 3 элемента использовали один layout, а все остальные другой?

Konstantin
21.08.2017
11:53:20
http://www.yiiframework.com/doc-2.0/yii-widgets-listview.html#$itemView-detail

function ($model, $key, $index, $widget)

Google
Konstantin
21.08.2017
11:53:48
можно в этой функции сделать проверку на $index

если 0, 1 или 2, то вернуть один шаблон

а если нет, то другой

Evgeniy
21.08.2017
12:15:08
Всем привет, ребят, кто-нибудь подключал bootstrap 4?

Maxim
21.08.2017
12:28:07
Почему ошибка не появляется на экране? Что не так? [['users'], 'filter', 'filter' => function ($users) { foreach ($users as $user) { if ($user->post_id === $this->user->post_id) { $this->addError($this->user->post_id, 'Ошибка!!! Один пост у двух юзеров!'); } } return $this->users; }];

кажется разобрался

Все-таки не разобрался. Почему на экране не плявляется ошибка? [['posts'], function ($attribute, $params, $validator) { foreach ($this->{$attribute} as $post) { if ($post->user_id === $this->post->user_id) { $this->addError($attribute, 'Один пост у двух юзеров!!!'); } }; }];

Валидация срабатывает, работает как нужно, но сообщения нет

Эти названия полей для примера, на самом деле там другое, но суть та же

Айбулат
21.08.2017
12:51:26
Валидация срабатывает, работает как нужно, но сообщения нет
а поле для сообщения ошибки присутствует?

Maxim
21.08.2017
12:52:03
да. post_id есть. Я нашел примечание одно в мануале http://joxi.ru/82QjOadt14jndA

Сейчас попробую и вернусь

Maxim
21.08.2017
13:01:49
[['posts'], function ($attribute, $params, $validator) { foreach ($this->{$attribute} as $post) { if ($post->user_id === $this->post->user_id) { $validator->addError($this->post, $attribute, 'Один пост у двух юзеров!!!'); } }; }]; Так тоже не работает Что я делаю не так? Кто-нибудь делал кастомные валидаторы?

@aibulatik я использую ActiveForm, поле должно само появляться

Айбулат
21.08.2017
13:05:52
@aibulatik я использую ActiveForm, поле должно само появляться
если ты шаблон поля не изменял, то да

Maxim
21.08.2017
13:06:02
не изменял

Boris
21.08.2017
15:25:17
Подскажите пожалуйста по поиску many-to-many. Есть три таблицы: 1. articles 2. tag 3. tag_articles (id|article_id|tag_id) В articles есть связь: public function getTagArticles() { return $this->hasMany(TagArticle::class, ['article_id' => 'id']); } public function getCurrentTags() { return $this->hasMany(Tag::class, ['id' => 'tag_id']) ->via('tagArticles'); } И $model->currentTags отдает модели тегов назначенных для article. Есть дефолтная ArticleSearch и я никак не могу понять что в нее добавлять для фильтрации articles по тегам.

Что-бы получать все articles с tag_id 5 например.

Ivan
21.08.2017
15:30:58
Что-бы получать все articles с tag_id 5 например.
Вот тут посмотри, ниже синей плашки http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#lazy-eager-loading

Boris
21.08.2017
15:38:40
Ниже Info: In general, when eagerly loading N relations among which M relations are defined with a junction table, a total number of N+M+1 SQL statements will be executed. Note that a nested relation a.b.c.d counts as 4 relations.?

Google
Ivan
21.08.2017
15:41:00
В чём вопрос?

Boris
21.08.2017
15:42:11
ниже синей плашки Скинул выше текст синей плашки. На правильную смотрю?

Ivan
21.08.2017
15:49:23
Сделай по ctrl+F поиск по странице $query->andWhere(['status' => Order::STATUS_ACTIVE]);

Boris
21.08.2017
16:02:13
Прочел, не совсем понимаю как это применить в search модели.

Вот так работает, это норм? if (!empty($this->searchTag)) { $query->joinWith('tagArticles')->where(['tag_id' => $this->searchTag]); }

Или можно как-то еще проще и понятнее сделать?

Admin
ERROR: S client not available

Karim
21.08.2017
16:19:42
filterwhere

Boris
21.08.2017
16:20:15
Не понял, можно подробнее?

Karim
21.08.2017
16:21:30
вместо If empty юзать. $query->joinWith('tagArticles')->filterWhere(['tag_id' => $this->searchTag]); Но пропускать будет только если $this->searchTag === Null, если не ошибаюсь

Boris
21.08.2017
16:23:52
работает

в итоге моя связь public function getCurrentTags() { return $this->hasMany(Tag::class, ['id' => 'tag_id']) ->via('tagArticles'); } и не нужна при этом поиске?

? ? ? Alex ? ? ?
21.08.2017
16:34:09
подскажите как в уии организовать в filterModel по параметру связанной модели?

<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ 'id', 'href', 'category.name', ['class' => 'yii\grid\ActionColumn'], ], ]); ?>

т.е надо поиск по category.name

Boris
21.08.2017
16:34:57
Бгг)

только что выше этот вопрос спрашивал

Alex
21.08.2017
16:35:29
ну создаешь форму с полем каттегории и ручками дописываешь в search() (ну или как ты обзываешь метод у себя) фильтр по полю

? ? ? Alex ? ? ?
21.08.2017
16:36:01
окей а вывести как мне список этих категорий нормально в селекте для поиска?

Alex
21.08.2017
16:36:16
ща покажу

Google
Alex
21.08.2017
16:36:22
дай шторму запустить)

Boris
21.08.2017
16:36:49
http://joxi.ru/a2XWEL7Cy4BkBm?d=1

Что-то типо тебе надо?

? ? ? Alex ? ? ?
21.08.2017
16:37:02
да

Alex
21.08.2017
16:37:59
[ 'attribute' => 'projectManager', 'value' => 'projectManager.shortName', 'filter' => \app\models\User::getDataList(false, \app\models\enums\UserTypes::PROJECT_MANAGER) ],

getDataList возвращает массив

Boris
21.08.2017
16:38:26
[ 'attribute' => 'searchTag', 'filter' => $tags, ], где $tags массив ['id' => 'name']

Alex
21.08.2017
16:38:40
там длинный кусок)

? ? ? Alex ? ? ?
21.08.2017
16:38:42
это куда вкидать?

в виджет?

Alex
21.08.2017
16:38:55
эта часть идет вместо 'category.name',

? ? ? Alex ? ? ?
21.08.2017
16:39:07
понял

спасибо

хм



почему не видно этих полей?

Валентин
21.08.2017
16:52:51
Заполнить attribute в колонке

Страница 517 из 1721