@yii2ru

Страница 160 из 1721
Boris
27.04.2017
08:20:57
насколько норм так делать родительскую модель? :D

https://pastebin.com/raw/YjuqjFfa

SiZE
27.04.2017
08:30:50
насколько норм так делать родительскую модель? :D
достаточно проверить наличие атрибута чтобы подключить поведение

Boris
27.04.2017
08:31:51
ммм, что-то типо: if (isset($this->attribute) { // подключаю нужное поведение }

Google
SiZE
27.04.2017
08:32:27
ммм, что-то типо: if (isset($this->attribute) { // подключаю нужное поведение }
http://www.yiiframework.com/doc-2.0/yii-db-baseactiverecord.html#hasAttribute()-detail

в итоге базовый класс будет типа такого class ActiveRecord extends ActiveRecord { public $isDeletedAttribute = 'is_deleted'; public function behaviors() { $behaviors = []; if ($this->hasAttribute($this->isDeletedAttribute)) { // подключаем } } }

Boris
27.04.2017
08:35:56
оффтоп, а как ты так код сюда залил?

Юрий
27.04.2017
08:36:29
Тройной апостроф с обеих сторон

Boris
27.04.2017
08:36:58
code();

спасибо

SiZE
27.04.2017
08:37:09
оффтоп, а как ты так код сюда залил?
апостроф тройной для строк с переносом

или как его там )

Юрий
27.04.2017
08:37:46
Одинарный для обычных работает с переменным успехом, поэтому и для одинарных лучше тройной

Одинарный месяц не работал как-то

Boris
27.04.2017
08:39:33
А почему именно public $isDeletedAttribute = 'is_deleted'; а не public $is_deleted;

SiZE
27.04.2017
08:41:19
потому что гладиолус ) зачем ты собрался объявлять атрибут, который в таблице?

Google
SiZE
27.04.2017
08:42:01
и если в какой-то таблице он назовется "isFuckingDeleted" будешь в модели переопределять behaviors?

Boris
27.04.2017
08:43:39
nope, мне надо именно что-бы были эти атрибуты в наследуемом классе

Где можно за это почитать? public $isDeletedAttribute = 'is_deleted'; в доке не вижу чот

ааа, я понял))

public $isDeletedAttribute = 'is_deleted'; $behaviors = []; if ($this->hasAttribute($this->isDeletedAttribute)) { $behaviors[] = [ 'softDeleteBehavior' => [ 'class' => SoftDeleteBehavior::class, 'softDeleteAttributeValues' => [ $this->isDeletedAttribute => true ], ] ]; }

Оно же?

Serg
27.04.2017
08:54:05
Есть идеи как красиво расширить rbac. Помимо штатной таблицы с ролями (assignment) еще одна - получиная с битрикса, Нужно роли клеить на лету. Вариант с раширением кучкки методов класса DbManager какжется грубым, может как-то подняться на более высокий уровень?

Boris
27.04.2017
08:57:44
@sizepermru оно верно?

https://pastebin.com/raw/Ep8Dekvh

SiZE
27.04.2017
10:07:35
https://pastebin.com/raw/Ep8Dekvh
бегло глянул, вроде все ок.

Boris
27.04.2017
12:26:43
ребят, получить всех пользователей по роли в виде массива id => username

через связь, верно же?

SiZE
27.04.2017
12:28:16
где получить? когда получить? зачем получить? :)

Dmitriy
27.04.2017
12:42:26
чезер модель связи а потом array::map хелпер

может так

Anatoly
27.04.2017
12:44:24
чезер модель связи а потом array::map хелпер
Array Map сожрёт память. Производительнй будет сразу из БД выбрать только 2 столбца: ->select(['username', 'id'])->indexBy('id')->column() Порядок колонок в select имеет значение, т.к. column() возьмёт первый столбец.

Boris
27.04.2017
12:48:56
ребят, снова я с нубо вопросами :)

мозг уже не соображает, как сделать что-бы был возврат этого: 'created_at:date', 'updated_at:date', [ 'attribute' => 'created_by', 'value' => 'createdBy.username', ], [ 'attribute' => 'updated_by', 'value' => 'updatedBy.username', ],

Google
Boris
27.04.2017
13:45:27
Именно в таком формате, иначе gridview ругается

Anatoly
27.04.2017
13:46:56
Не понял вопрос

SiZE
27.04.2017
13:46:59
+1

Anatoly
27.04.2017
13:47:35
Boris
27.04.2017
13:48:30
Setting unknown property: yii\grid\DataColumn::0 @void0 так и возвращаю, но это получается же в массиве columns будет еще массив

Anatoly
27.04.2017
13:49:37
Нужно больше подробностей

Как происходит объединение конфига?

Anatoly
27.04.2017
13:50:50
GridView::widget(['columns' => $columns]);

Boris
27.04.2017
13:51:02
Нужно больше подробностей
Есть стандартный gridview: <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ 'created_at:date', 'updated_at:date', [ 'attribute' => 'created_by', 'value' => 'createdBy.username', ], [ 'attribute' => 'updated_by', 'value' => 'updatedBy.username', ], ], ]); ?>

Хочу получить что-то типо:

Boris
27.04.2017
13:52:46
function someName () { return [ 'created_at:date', 'updated_at:date', [ 'attribute' => 'created_by', 'value' => 'createdBy.username', ], [ 'attribute' => 'updated_by', 'value' => 'updatedBy.username', ], ]; } И в gridview: <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ someName(), // etc ], ]); ?>

SiZE
27.04.2017
13:53:11
'columns' => someName(),

Anatoly
27.04.2017
13:53:17
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => ArrayHelper::merge(someName(), []), ], ]); ?>

Boris
27.04.2017
13:53:44
'columns' => someName(),
У меня же еще будет там много полей :)

SiZE
27.04.2017
13:54:07
Boris
27.04.2017
13:56:32
Работает, но получается шляпа :)

Admin
ERROR: S client not available

Boris
27.04.2017
13:56:33
http://dl4.joxi.net/drive/2017/04/27/0017/0874/1139562/62/9bd6522242.png

Google
Boris
27.04.2017
13:57:01
т.е. в определенное место надо добавлять новые поля

SiZE
27.04.2017
13:58:47
Ну выкручивайся :)

Boris
27.04.2017
14:02:22
уже)

спасибо за помощь

Artyom
27.04.2017
14:39:35
Всем привет. Подскажите пожалуйста, как составить обработку маршрута для такой ситуации: /:section_slug/:section_slug/:section_slug/:page_slug причем кол-во вложенных друг в друга разделов неизвестно и может быть от одного и до бесконечности?

SiZE
27.04.2017
15:09:48
Своё правило

Сверять урл в базе

Isaev
27.04.2017
16:22:18
Хочу написать программу для управления тонкими клиентами, насколько целеообразно использовать фреймворк yii для этого или лучше самопис? Интерфейс будет типа такого

Vasily
27.04.2017
16:23:56
Для тонких клиентов надо использовать толстые решения.

Нужно сохранять баланс.

Баланс в мире - это, очень важно.

Nurik
27.04.2017
17:36:49
https://github.com/yiisoft/yii2/blob/master/docs/guide-ru/rest-versioning.md Бля в официальной доке пишут такую хрень: "Для лучшего разделения ответственности кода вы можете составить общий набор базовых классов ресурсов и контроллеров, и субклассировать их в каждом отдельно взятом модуле версии. "

Какой тогда смысл в версионировании, если кто-то может запороть все версии, просто поменяв родительский класс.

Поправьте меня, если я не прав. Но мне кажется это какой-то хренью.

SiZE
27.04.2017
17:53:52
Nurik
27.04.2017
17:54:58
это размышление о том "что можно все запороть просто удалив репозиторий" )
запороть репо одно. другое, это когда можно при комите не заметить изменений и автоматом портим все версии

SiZE
27.04.2017
17:55:35
для этого МР и кодревью

ну конечно если ты не в одну каску

Nurik
27.04.2017
17:56:23
ну ну.

Google
SiZE
27.04.2017
17:57:21
вообще базовый контроллер ничего не возвращает, чо там запороть то можно?

ну если мы конкретно о таком примере

Nurik
27.04.2017
17:57:45
там в примере не базовые контроллеры.

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