
Alexandr
24.09.2018
06:37:31
да
с 5 версии

SiZE
24.09.2018
07:04:36

breakt1mus
24.09.2018
07:05:32

Google

breakt1mus
24.09.2018
07:07:04
Проще "переобозвать" нежели потом мучаться, но на вкус и цвет все фломастеры разные)

Eugene
24.09.2018
07:08:18
ребята, подскажите пожалуйста, как индексы убрать у массива? У меня есть массив вида
array(12) {
[0]=>
array(1) {
["Без имени"]=>
array(2) {
["name"]=>
string(17) "Без имени"
["data"]=>
int(1537432808)
}
}
Я хочу чтобы он был вида
array(12) {
["Без имени"]=>
array(2) {
["name"]=>
string(17) "Без имени"
["data"]=>
int(1537432808)
}
как этого достичь можно?

Andrey
24.09.2018
07:08:48
indexBy('name')
не подойдет?

Eugene
24.09.2018
07:09:35

Alexandr
24.09.2018
07:10:40
кто может подсказать по dataProvider. Как там можно реализовать сортировку например по цене, если есть 2 столбца - цена и скидка и сортировать должно по цена минус скидка. То есть не параметр, а колбэк. или встроенными методами так нельзя?

breakt1mus
24.09.2018
07:18:13

Alexandr
24.09.2018
07:18:52
А в модели как его оформить?

breakt1mus
24.09.2018
07:19:04
В доке есть примеры по моему с объемом комнаты, причем какая то русская дока
Точно уже не помню

Alexandr
24.09.2018
07:42:44
сделал, к сожалению не работает, при попытке сортировки кидает эксепшн. Есть еще варианты?

Andrey
24.09.2018
07:45:09
а не это не катит

Google

Alexandr
24.09.2018
07:46:51
тут скорее говорится о том, что никак) Но как то не верится что такая ситуация ни у кого не возникала и не найдено решений

Andrey
24.09.2018
07:51:16
так стопе) задача изи не знаю в чем трабл)
ты sql запрос составить можешь?
ты ведь с помощью sql можешь конечное значение получить и по нему сортировочку сделать?

Alexandr
24.09.2018
07:53:56
могу, но думал есть решение из коробки, просто подставить в sort=>['param'] и описать геттер для него

Andrey
24.09.2018
08:03:33
Так работает?
И потом order by finnaly_price

Alexandr
24.09.2018
08:05:00
у меня выборка моделей идет, стандартным activedataprovider, без селектов, все целиком
но нашел метод $dataProvider->sort->createSortParam(), сейчас его пытаюсь раскурить

Andrey
24.09.2018
08:06:37
Покажи код и залей на pastebin

breakt1mus
24.09.2018
08:07:25
И через селект и через дополнительное поле работает сортировка
Просто нужно в датапровайдер указать что поле сортируемое

Alexandr
24.09.2018
08:08:24

breakt1mus
24.09.2018
08:08:44

Andrey
24.09.2018
08:08:45
бро, ты query сделай просто
$provider = new ActiveDataProvider([
'query' => ТВОЙ QUERY,
'pagination' => [
'pageSize' => 20,
],
]);

breakt1mus
24.09.2018
08:09:19

Andrey
24.09.2018
08:09:44
а есть пример?
https://www.yiiframework.com/doc/guide/2.0/ru/output-data-providers#active-data-provider

breakt1mus
24.09.2018
08:09:45

Google

breakt1mus
24.09.2018
08:09:58
Иначе сортировка будет не активна

Andrey
24.09.2018
08:10:17

Alexandr
24.09.2018
08:11:13
это стандарт) я про пример добавления именно кастомного параметра

breakt1mus
24.09.2018
08:11:18
Задай какое нибудь поле через as field и увидишь что сортировка будет неактивна

Alexandr
24.09.2018
08:11:37
если я пишу селект, то он и выбирать будет только то что в несм

breakt1mus
24.09.2018
08:12:32
Все поля плюс кастомное
Что ещё надо?

Alexandr
24.09.2018
08:13:08
activedataprovider такое разве скушает?

breakt1mus
24.09.2018
08:13:14
Легко
Идём в доку и раскуриваем

Alexandr
24.09.2018
08:13:30
сейчас попробую

breakt1mus
24.09.2018
08:13:44
Ща если найду пример кину
$query = Model::find()->select('*, (`item1`-`item2` )as custom_item')
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pageSize' => 15,
],
]);
$dataProvider->setSort([
'defaultOrder' => ['id' => SORT_DESC],
'attributes' => [
// Атрибуты сортировки в том числе и кастомный
]
]);
И в рулзы нужно кастомный атрибут добавить как safe

Alexandr
24.09.2018
08:24:42
спасибо)

breakt1mus
24.09.2018
08:30:44
Там же написано что две колонки id, когда составляете запрос лучше проверяйте его непосредственно в sql

Alexandr
24.09.2018
08:47:23
ошибка возникает уже при добавлении ->select('*'), без изменений. видимо все таки активдатапровайдер не может такое понять

breakt1mus
24.09.2018
08:50:38

Google

breakt1mus
24.09.2018
08:50:45
Вручную
Уверен что схавает
Тут дело в запросе, потому что у меня все работает и так же используются джойны, только запрос попроще

Andrey
24.09.2018
09:10:26
Model::find()->select([Model::tableName().'.*', 'custom_field'])

Alexandr
24.09.2018
09:15:20
сделал)
так же как Андрей подсказал)
всем спасибо

Konstantin
24.09.2018
10:15:18
для phpstorm есть какой нибудь способ запретить индексацию папок тестов, примеров, доков внутри папки /vendor/ ? (/vendor/*/test/, /vendor/*/example/, /vendor/*/docs/) ? чтобы в автокомплит не попадали?

Admin
ERROR: S client not available

Alexandr
24.09.2018
10:17:45
в контекстном меню mark directory as

Алексей
24.09.2018
10:20:04

Maxim
24.09.2018
10:25:22
Подскажите как можно сохранить текущее состояние таблицы в переменную, а потом из этой переменной восстановить таблицу.

Fedor
24.09.2018
10:31:02
А не легче скопировать во временную таблицу?

Alexandr
24.09.2018
10:31:45
$rows = TableName::find()->all();
foreach($rows as $row){
сохранить строку;
}
Но могут возникнуть проблемы со связями между таблицами
но задача очень странная

Сергей
24.09.2018
10:34:05

Maxim
24.09.2018
10:35:35
Что хранишь в таблице?
У меня там структура nested sets. Я просто в одном из action меняю ее, но перед изменением я бы хотел иметь исходную структуру.

Сергей
24.09.2018
10:36:08
Так просто сохрани своё дерево в переменную и используй.

Maxim
24.09.2018
10:39:00

Google

Сергей
24.09.2018
10:44:24

Maxim
24.09.2018
10:44:40

Сергей
24.09.2018
10:45:37
Да
Если дерево одно, могу кусок кода дать)
Я делал подобное, только для кэгирования

Maxim
24.09.2018
10:46:26
Я вот думаю, может сделать просто выборку всех веток, получается они будут в виде массивов, а затем мне их нужно будет вставить в корень.
Точнее просто в бд

Сергей
24.09.2018
10:49:00
Ну давай, посмотрю
https://pastebin.com/uHQCRkEN
См. функцию getTreeData
Логика строится на том, что дерево одно и корневой элемент первый с ID=1

Maxim
24.09.2018
10:53:45

Сергей
24.09.2018
10:54:39
Массив
[ ID => ['entity' => ActiveRecord, ..доп. параметры чтобы быстрее находить нужные узлы...]]

Andruha
24.09.2018
11:16:26
Всем привет. Пишу апишку, есть два контроллера games и users, оба контроллера наследуют один и тот же ApiDefaultController, где имеется
$behaviors['corsFilter'] = [
'class' => Cors::class,
];
но при любом запросе games/<action> все ок, а вот users/<action> при запросе с фронта localhost выдает ошибку Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
Все запросы сопровождаются одинаковым набором хедеров. Где что еще можно проверить, почему у контроллеров разное поведение?
причем это только с localhost, на stage сервере все ок, через postman все ок

Maxim
24.09.2018
11:54:07

Сергей
24.09.2018
12:59:58
как можно скрыть строку в GridView? например если в опр. столбце пустая ячейка то скрывать всю строку, подскажите куда копать?)

Alexandr
24.09.2018
13:21:24
фильтровать данные в запросе

Andrey
24.09.2018
13:31:52
фильтровать данные в запросе
это будет правильнее.
вот еще способ воздействовать конкретно на строку:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'rowOptions' => function ($model, $key, $index, $gridView) {
return Your_logic ? ['class' => 'hidden'] : [];
},

R
24.09.2018
14:05:59
Всем привет! Может кто знает, есть какой-нибудь готовый Content Construction Kit для yii? Или может не привязанный к фреймворку. Если точнее, нужно какое-то готовое решения для конструктора статей, то есть чтобы можно было из стилизованных блоков собирать красивые статьи (допустим, добавил блок текста, потом добавил блок с картинкой, затем еще какой-нибудь блок и тд).

PowerAxis
24.09.2018
14:17:44
PageBuilder
Для жумлы или вп

Andrey
24.09.2018
14:46:25
Привет! Кто знает, как должно выглядеть правило в валидаторе, которое должно проверяться всегда, т.е. без привязки к конкретному полю, а всегда когда вызывется $model->validate()?

Andrey
24.09.2018
14:48:31