@yii2ru

Страница 559 из 1721
Matviy
05.09.2017
15:41:59
Вечно гемор с этими фильтрами и сортировками

То есть. как я понимаю, сначала делается тот же запрос для того, чтоб грид знал количество записей. Но блин, какого-то хрена там не учитывается часть select()

Alexandr
05.09.2017
15:44:48
алиасы полей из селекта не попадают в where

пиши в where все условие целиком

Google
Ivan
05.09.2017
15:45:14
Ага, есть такой прикол, когда происходит count() он вызывается без учёта что там в select

Matviy
05.09.2017
15:46:43
Ну блин

Тупо же

Ок, запишу тогда в условие

Я так понимаю, это для увеличения производительности?

Но можно было бы сделать проперти, чтоб я сам решал, нужно учитывать или нет

Вообще. постоянно какие-то танцы с бубном в этих SearchModel

Alexandr
05.09.2017
15:50:34
модели тут не причем, такой MySql

Сергей
05.09.2017
15:51:40
И ещё вопросик по БД. Два запроса: 1) $rows = ActiveRecordClass::find()->select(['id', 'name'])->asArray()->all(); 2) $rows = ActiveRecordClass::find()->select(['id', 'name'])->prepare(Yii::$app->db->queryBuilder)->createCommand()->queryAll(); В первом случае ошибка, во втором всё хорошо. Проблема в первом случае в том, что он там пытается модели наполнить и не находит в массиве прочие параметры. Я вообще думал, что раз asArray - то должно работать, но слон там плавал, не выходит :( Можно ли как-то более компактно написать запрос, чем во втором варианте?

Matviy
05.09.2017
15:51:48
Возможно, но я просто констатирую факт - фильтрация и сортировка как-то слишком нетривиально постоянно делается, как для таких постоянно нужных вещей

Да, спасибо, так работает

Ivan
05.09.2017
17:33:24
Хай всем! А PHP 5.6 поддерживает тернарный оператор if?

я вижу только в 7м можно использовать $var = $value ?? "Другое значение"; такую конструкцию а вот в 5,6 что то не могу найти

Google
Alex
05.09.2017
17:34:33
нет

только 7 и выше

Yaroslav
05.09.2017
17:34:41
ну да, это в семёре ??

Ivan
05.09.2017
17:34:49
блииииин

гадство(

Yaroslav
05.09.2017
17:35:05
а expr ? true-case : false-case есть в 5.x.

Ivan
05.09.2017
17:36:10
''return $data->status == 1 ? Html::a('Allow', ['allow', 'id_comment'=>$data->id_comment], ['class' => 'btn btn-primary']) : Html::a('disAllow', ['comment/disallow', 'id'=>$data->id_comment]); в общем я не хочу выводить 2е значение и не знаю как быть, это у меня в gridView через анонимную функцию происходит

да блин как код то вставлять сюда

``[ 'class' => 'yii\grid\ActionColumn', 'template' => '{view} {mail} {delete}', 'buttons' => [ 'mail' => function($data, $key, $index) { return $data->status == 1 ? Html::a('Allow', ['allow', 'id_comment'=>$data->id_comment], ['class' => 'btn btn-primary']) : Html::a('disAllow', ['comment/disallow', 'id'=>$data->id_comment]); } ] ] ],

djn

Сергей
05.09.2017
17:36:42
три апострофа или один

многострочный - три апострофа

Ivan
05.09.2017
17:36:57
'''[ 'class' => 'yii\grid\ActionColumn', 'template' => '{view} {mail} {delete}', 'buttons' => [ 'mail' => function($data, $key, $index) { return $data->status == 1 ? Html::a('Allow', ['allow', 'id_comment'=>$data->id_comment], ['class' => 'btn btn-primary']) : Html::a('disAllow', ['comment/disallow', 'id'=>$data->id_comment]); } ] ] ],

`[ 'class' => 'yii\grid\ActionColumn', 'template' => '{view} {mail} {delete}', 'buttons' => [ 'mail' => function($data, $key, $index) { return $data->status == 1 ? Html::a('Allow', ['allow', 'id_comment'=>$data->id_comment], ['class' => 'btn btn-primary']) : Html::a('disAllow', ['comment/disallow', 'id'=>$data->id_comment]); } ] ] ],

Сергей
05.09.2017
17:37:10
`

Три вначале и три в конце :)

Ivan
05.09.2017
17:37:36
[ 'class' => 'yii\grid\ActionColumn', 'template' => '{view} {mail} {delete}', 'buttons' => [ 'mail' => function($data, $key, $index) { return $data->status == 1 ? Html::a('Allow', ['allow', 'id_comment'=>$data->id_comment], ['class' => 'btn btn-primary']) : Html::a('disAllow', ['comment/disallow', 'id'=>$data->id_comment]); } ] ] ],

ну хоть что то за сегодня получилось)))))

вот как быть что бы не выводить 2е значение `Html::a('disAllow', ['comment/disallow', 'id'=>$data->id_comment]);

Google
Yaroslav
05.09.2017
17:39:09
офоромить анонимку выше по коду и оформить нормально, а не в это месиво.

Ivan
05.09.2017
17:39:11
вот тут я это и вычитал

Yaroslav
05.09.2017
17:39:35
и уже в 'mail' => $getControls.

Сергей
05.09.2017
17:40:06
return $data->status != 1 ?: Html::a('Allow', ['allow', 'id_comment'=>$data->id_comment];

Ivan
05.09.2017
17:40:12
точно, можно же и вынести

О!

return $data->status != 1 ?: Html::a('Allow', ['allow', 'id_comment'=>$data->id_comment];
вот это почти то что мне нужно, Спасибо!

Yaroslav
05.09.2017
17:42:21
почему почти?

Сергей
05.09.2017
17:42:57
Ещё как вариант выводить return Html::a('Allow', ['allow', 'id_comment'=>$data->id_comment];, а в параметре visible у колонки указать уже $data->status != 1

Ivan
05.09.2017
17:43:00
а это уже мой косяк)) Чтто не туда параметры улетают

почему то мне первый вариант больше нравится, сейчас только пойму почему не происходит нужно мне действия

Yaroslav
05.09.2017
17:44:36
да ваще непонятно, что ты так вцепился в этот ??.

Yaroslav
05.09.2017
17:44:48
и без него можно сделать нормально.

Сергей
05.09.2017
17:45:03
Продублирую... может сейчас кто ответит :)

И ещё вопросик по БД. Два запроса: 1) $rows = ActiveRecordClass::find()->select(['id', 'name'])->asArray()->all(); 2) $rows = ActiveRecordClass::find()->select(['id', 'name'])->prepare(Yii::$app->db->queryBuilder)->createCommand()->queryAll(); В первом случае ошибка, во втором всё хорошо. Проблема в первом случае в том, что он там пытается модели наполнить и не находит в массиве прочие параметры. Я вообще думал, что раз asArray - то должно работать, но слон там плавал, не выходит :( Можно ли как-то более компактно написать запрос, чем во втором варианте?

Yaroslav
05.09.2017
17:45:26
ты лучше вот этот вот $data->status != 1 оформи в какое-нибудь $data->isNotЧоТамПроверяется().

Yaroslav
05.09.2017
17:45:54
понаделают магических констант, потом без поллитра не разберёшься.

Ivan
05.09.2017
17:46:12
)))сейчас попробую

Yaroslav
05.09.2017
17:46:40
чо пробовать, сделай. 1 метод написать.

Google
Сергей
05.09.2017
17:46:43
код должен читаться

Дмитрий
05.09.2017
17:48:49
Продублирую... может сейчас кто ответит :)
ошибка-то какая в первом случае?

Ivan
05.09.2017
17:48:49
делаю)

Сергей
05.09.2017
17:50:32
ошибка-то какая в первом случае?
В глубинах фреймворка происходит заполнение модели из массива, полученного из БД. То есть в модели есть ещё свойства, например desc. А в полученном массиве нет desc и вываливается ошибка, что неизвестный индекс массива.

Дмитрий
05.09.2017
17:51:28
Текст ошибки?

Сергей
05.09.2017
17:52:03
щас нет возможности запустить... ну там undefined index что-то там

Дмитрий
05.09.2017
17:52:04
и код класса ещё бы увидеть

Сергей
05.09.2017
17:54:44
https://github.com/yiisoft/yii2/blob/master/framework/db/ActiveRelationTrait.php#L469

Admin
ERROR: S client not available

Сергей
05.09.2017
17:55:20
Вот тут... а... забыл, важно. Ещё есть relation и как раз по атрибуту, по которому relation вот тут выпадает ошибка

Yaroslav
05.09.2017
18:03:12
гитхаб поломался?

у меня вёрстка разъехалась.

Сергей
05.09.2017
18:03:55
да, что-то пошло не так)

Yaroslav
05.09.2017
18:04:11
стили пролюбили - 404.

Matviy
05.09.2017
18:11:19
`
А это на клаве где?

Ivan
05.09.2017
18:11:43
там где Ё

тильда

Matviy
05.09.2017
18:12:58
Спасибо)

Работает

Yaroslav
05.09.2017
18:13:44
:D

Google
Виктор
05.09.2017
18:20:19
вот
спасибо, уже разобрался

Matviy
05.09.2017
21:25:39
Как можно передать в ActiveRecord параметры в метод init()? Или такое только через конструктор? Хочу, чтоб при создании новой модели можно было передать параметры

Alex
05.09.2017
21:27:16
надо дописывать конструктор

Matviy
05.09.2017
21:28:17
Понятно

Nikolay
05.09.2017
21:28:47
Сделай фабрику которая будет тебе модели создавать

Matviy
05.09.2017
21:31:10
Да там не такая уж важная задача, чтоб фабрики городить

Alex
05.09.2017
21:31:32
тогда давай распихивай по микросервсам и по сокетам передавай данные)))))

Matviy
05.09.2017
21:31:39
?

Alex
05.09.2017
21:31:43
ради красивого взаимодейтсвия)

Matviy
05.09.2017
21:32:41
Кстати, как мне кажется, нельзя в модели делать параметры в конструкторе, ибо будет матерится при неявном создании моделей (например, find()->one(), и другие

Alex
05.09.2017
21:32:56
почему это?

Matviy
05.09.2017
21:33:03
ПРобовал

Alex
05.09.2017
21:33:08
public function __construct($config = [], $attributes =[])

вот так

Nikolay
05.09.2017
21:33:14
можешь сделать через паттерн билдер )

Alex
05.09.2017
21:33:28
только не забудь парент вызвать только содним параметром

Matviy
05.09.2017
21:33:58
Хм

Ну я вроде пробовал, был какой-то гемор с этим. Возможно, не сделал значение по умолчанию

Alex
05.09.2017
21:34:29
скорее всего

или поставил атрибуты в первое поле

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