Borys
Повесь backend из advanced на доп. домен и делай же :)
Vladimir
Простая форма с одним инпутом типа dropdown. Сделайте ей 'method' => 'GET', у дропдауна 'name' => 'per-page'. Ну и сабмит на onchange
Подскажите, а как в форме передать уже существующие GET параметры, чтобы при смене per-page они не терялись?
Vladimir
строка с параметрами лежит в $_SERVER['QUERY_STRING']
Ага, или в Yii::$app->request->get(). Вручную разобрать и передать конечно можно. Но мб можно как-то ещё стандартно в экшене формы например.
Borys
Ребят
Borys
насколько норм так делать родительскую модель? :D
Borys
https://pastebin.com/raw/YjuqjFfa
SiZE
насколько норм так делать родительскую модель? :D
достаточно проверить наличие атрибута чтобы подключить поведение
Borys
ммм, что-то типо: if (isset($this->attribute) { // подключаю нужное поведение }
SiZE
ммм, что-то типо: if (isset($this->attribute) { // подключаю нужное поведение }
http://www.yiiframework.com/doc-2.0/yii-db-baseactiverecord.html#hasAttribute()-detail
SiZE
в итоге базовый класс будет типа такого class ActiveRecord extends ActiveRecord { public $isDeletedAttribute = 'is_deleted'; public function behaviors() { $behaviors = []; if ($this->hasAttribute($this->isDeletedAttribute)) { // подключаем } } }
Borys
оффтоп, а как ты так код сюда залил?
Юрий
Тройной апостроф с обеих сторон
Borys
code();
Borys
спасибо
SiZE
оффтоп, а как ты так код сюда залил?
апостроф тройной для строк с переносом
SiZE
или как его там )
Юрий
Одинарный для обычных работает с переменным успехом, поэтому и для одинарных лучше тройной
Юрий
Одинарный месяц не работал как-то
Borys
А почему именно public $isDeletedAttribute = 'is_deleted'; а не public $is_deleted;
SiZE
потому что гладиолус ) зачем ты собрался объявлять атрибут, который в таблице?
SiZE
и если в какой-то таблице он назовется "isFuckingDeleted" будешь в модели переопределять behaviors?
Borys
nope, мне надо именно что-бы были эти атрибуты в наследуемом классе
Borys
Где можно за это почитать? public $isDeletedAttribute = 'is_deleted'; в доке не вижу чот
Borys
ааа, я понял))
Borys
public $isDeletedAttribute = 'is_deleted'; $behaviors = []; if ($this->hasAttribute($this->isDeletedAttribute)) { $behaviors[] = [ 'softDeleteBehavior' => [ 'class' => SoftDeleteBehavior::class, 'softDeleteAttributeValues' => [ $this->isDeletedAttribute => true ], ] ]; }
Borys
Оно же?
Serg
Есть идеи как красиво расширить rbac. Помимо штатной таблицы с ролями (assignment) еще одна - получиная с битрикса, Нужно роли клеить на лету. Вариант с раширением кучкки методов класса DbManager какжется грубым, может как-то подняться на более высокий уровень?
Borys
@sizepermru оно верно?
Borys
https://pastebin.com/raw/Ep8Dekvh
SiZE
https://pastebin.com/raw/Ep8Dekvh
бегло глянул, вроде все ок.
Borys
ребят, получить всех пользователей по роли в виде массива id => username
Borys
через связь, верно же?
SiZE
где получить? когда получить? зачем получить? :)
knifeblade
чезер модель связи а потом array::map хелпер
knifeblade
может так
Toly
чезер модель связи а потом array::map хелпер
Array Map сожрёт память. Производительнй будет сразу из БД выбрать только 2 столбца: ->select(['username', 'id'])->indexBy('id')->column() Порядок колонок в select имеет значение, т.к. column() возьмёт первый столбец.
Borys
ребят, снова я с нубо вопросами :)
Borys
мозг уже не соображает, как сделать что-бы был возврат этого: 'created_at:date', 'updated_at:date', [ 'attribute' => 'created_by', 'value' => 'createdBy.username', ], [ 'attribute' => 'updated_by', 'value' => 'updatedBy.username', ],
Borys
Именно в таком формате, иначе gridview ругается
Toly
Не понял вопрос
SiZE
+1
Toly
мозг уже не соображает, как сделать что-бы был возврат этого: 'created_at:date', 'updated_at:date', [ 'attribute' => 'created_by', 'value' => 'createdBy.username', ], [ 'attribute' => 'updated_by', 'value' => 'updatedBy.username', ],
return [ 'created_at:date', 'updated_at:date', [ 'attribute' => 'created_by', 'value' => 'createdBy.username', ], [ 'attribute' => 'updated_by', 'value' => 'updatedBy.username', ], ];
Borys
Setting unknown property: yii\grid\DataColumn::0 @void0 так и возвращаю, но это получается же в массиве columns будет еще массив
Toly
Нужно больше подробностей
Toly
Как происходит объединение конфига?
Toly
GridView::widget(['columns' => $columns]);
Borys
Нужно больше подробностей
Есть стандартный 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', ], ], ]); ?>
Borys
Хочу получить что-то типо:
Borys
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
'columns' => someName(),
Toly
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => ArrayHelper::merge(someName(), []), ], ]); ?>
Borys
'columns' => someName(),
У меня же еще будет там много полей :)
Borys
Работает, но получается шляпа :)
Borys
http://dl4.joxi.net/drive/2017/04/27/0017/0874/1139562/62/9bd6522242.png
Borys
т.е. в определенное место надо добавлять новые поля
SiZE
Ну выкручивайся :)
Borys
уже)
Borys
спасибо за помощь
Artem
Всем привет. Подскажите пожалуйста, как составить обработку маршрута для такой ситуации: /:section_slug/:section_slug/:section_slug/:page_slug причем кол-во вложенных друг в друга разделов неизвестно и может быть от одного и до бесконечности?
SiZE
Своё правило
SiZE
Сверять урл в базе
Владимир
Хочу написать программу для управления тонкими клиентами, насколько целеообразно использовать фреймворк yii для этого или лучше самопис? Интерфейс будет типа такого
Владимир
Vasily
Для тонких клиентов надо использовать толстые решения.
Vasily
Нужно сохранять баланс.
Vasily
Баланс в мире - это, очень важно.
Nurik
https://github.com/yiisoft/yii2/blob/master/docs/guide-ru/rest-versioning.md Бля в официальной доке пишут такую хрень: "Для лучшего разделения ответственности кода вы можете составить общий набор базовых классов ресурсов и контроллеров, и субклассировать их в каждом отдельно взятом модуле версии. "
Nurik
Какой тогда смысл в версионировании, если кто-то может запороть все версии, просто поменяв родительский класс.
Nurik
Поправьте меня, если я не прав. Но мне кажется это какой-то хренью.
SiZE
Какой тогда смысл в версионировании, если кто-то может запороть все версии, просто поменяв родительский класс.
это размышление о том "что можно все запороть просто удалив репозиторий" )
Nurik
это размышление о том "что можно все запороть просто удалив репозиторий" )
запороть репо одно. другое, это когда можно при комите не заметить изменений и автоматом портим все версии
SiZE
для этого МР и кодревью