@yii2ru

Страница 1089 из 1721
Vano
25.03.2018
10:48:23
./yii list

там и смотришь

https://www.yiiframework.com/wiki/819/php-built-in-server-integration

Константин
25.03.2018
10:55:37
спасибо. сейча изучу

Google
Константин
25.03.2018
12:12:56
https://www.yiiframework.com/wiki/819/php-built-in-server-integration
Еще раз спс. Именно то, что я искал! ?

Serge
25.03.2018
12:19:56
Подскажите, как в Yii2 один раз определить где-то кусок html-кода и потом в разных шаблонах его использовать? Примерно как в MODx чанки. :)

Serge
25.03.2018
12:26:55
хм, то есть если у меня есть три лейаута, где в футере есть одинаковый блок счетчиков для всех лейаутов, то мне надо создать файл например counters.php, прописать там счетчики и рендерить в каждом лейауте? <?=$this->render('counters.php')?>

Vano
25.03.2018
12:29:27
https://yiiframework.com.ua/ru/doc/guide/2/structure-views/

прочти хорошенько

Serge
25.03.2018
12:45:13
<?= \Yii::$app->view->renderFile('@app/views/layouts/counters.php'); ?> вроде это то что мне нужно!

Сергей
25.03.2018
12:48:34
Добрый день! Есть ActiveForm и внутри неё часть полей хочу загружать ajax-ом. Как мне в экшене, который ajax-ом вызывается сгенерить мои поля? $form = ActiveForm::begin(); $form->field(...); ActiveForm::end(); Генерит ещё и <form, а как этого избежать не пойму.

Vadim
25.03.2018
13:07:37
Подскажите. При сохранении выдается ошибка: [type] => Array ( [0] => The combination "filter"-"516952-516963-517009"-""-""-"36" of Type, Min Childs, City, Region and Count has already been taken. ) Это ошибка индекса, как я понял. Но у меня нет уникальных индексов в базе.

PowerAxis
25.03.2018
13:09:07
Добрый день! Есть ActiveForm и внутри неё часть полей хочу загружать ajax-ом. Как мне в экшене, который ajax-ом вызывается сгенерить мои поля? $form = ActiveForm::begin(); $form->field(...); ActiveForm::end(); Генерит ещё и <form, а как этого избежать не пойму.
Я обычно такие штуки на чистом html делаю, потому заебешься все параметры прописывать. Минус, правда, в том, что вывод при редактирования нужно вручную делать.

Сергей
25.03.2018
13:09:50
PowerAxis
25.03.2018
13:11:35
Ну у меня почти всегда эта задача связана с тем, что полей этих может быть n штук и все равно имя формы получится что-то типа OptionForm[name][0]

Google
PowerAxis
25.03.2018
13:11:56
Все равно его вручную формировать

Сергей
25.03.2018
13:13:06
Сделал в итоге с костылём... не знаю как проще ( ob_start(); $form = ActiveForm::begin(); $html = (new self())->render('_data_' . $key, [ 'form' => $form, 'model' => $model, ]); ActiveForm::end(); ob_get_clean(); return $html;

PowerAxis
25.03.2018
13:14:17
А как ты делаешь, если поле, например, хранит данные в Json? И вывести потом нужно n инпутов

Сергей
25.03.2018
13:15:51
И так постоянно
Классика же ))))) Сам с таким сталкиваюсь постоянно

PowerAxis
25.03.2018
13:16:04
Ну, к примеру, у тебя одинаковых полей много в форме и ты их в Json сохранил

Vadim
25.03.2018
13:16:11
Может этот феномен как-то научно называется уже?

Эд
25.03.2018
13:16:50
И так постоянно
Только не обращайся теперь с проблемой сразу, ебаться сутки все равно придется))

PowerAxis
25.03.2018
13:16:56
Резиновая уточка

Vadim
25.03.2018
13:17:11
Резииновая уточка?

Это что-то про Медведева?

Сергей
25.03.2018
13:17:34
Ну, к примеру, у тебя одинаковых полей много в форме и ты их в Json сохранил
Я разделяю хранение и формы. В форме уже хранится в виде массива.

Vadim
25.03.2018
13:18:28
Только не обращайся теперь с проблемой сразу, ебаться сутки все равно придется))
Ну это явно перестанет работать, хотя попробовать стоит.

Сергей
25.03.2018
13:18:57
Оно работает только когда упёрся сам, а не сходу начал писать

Vadim
25.03.2018
13:21:49
Оно работает только когда упёрся сам, а не сходу начал писать
Да хрен знает. Я вот допер после сообщения в чат, что нужно ошибку погуглить, она мне казалась очевидной.

Нашел вот эту страницу: https://github.com/yiisoft/yii2/issues/11322 Собственно, ответа там нет и вопрос другой. Но в голову пришла мысль посмотреть модель.

Оказывается, она была отгенерена через gii с уникальным индексом когда-то давно.

Google
Vadim
25.03.2018
13:23:39
Ну, то есть, оно как-то само всё, как по волшебству )

PowerAxis
25.03.2018
13:24:12
Резииновая уточка?
https://ru.m.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D1%83%D1%82%D1%91%D0%BD%D0%BA%D0%B0

Сергей
25.03.2018
13:24:19
У меня бывало, что думаешь/гуглишь и ничего. Потом пишешь в чат, делаешь следующий запрос и находится решение.

PowerAxis
25.03.2018
13:24:29
Читай выше

Vadim
25.03.2018
13:25:33
Читай выше
> Считается, что правильная формулировка вопроса содержит как минимум половину ответа, а также это даёт толчок мыслям, направляя их в нужное русло Ну да, похоже на правду.

PowerAxis
25.03.2018
13:36:14
Я разделяю хранение и формы. В форме уже хранится в виде массива.
Можешь объяснить? Вот, к примеру, у меня задача - https://imgur.com/oAKXi4X таких строк может быть много, и я просто дублирую инпут формы с именем типа ProductForm[video][0] .... ProductForm[video][3] и закидываю в БД в одно поле как json. Но при редактрировании нужно декрдировать json и вывести все эти поля... как ты такое средставми фреймворка делаешь?

Сергей
25.03.2018
13:36:49
У меня как раз есть с видосами, ща)

Можешь объяснить? Вот, к примеру, у меня задача - https://imgur.com/oAKXi4X таких строк может быть много, и я просто дублирую инпут формы с именем типа ProductForm[video][0] .... ProductForm[video][3] и закидываю в БД в одно поле как json. Но при редактрировании нужно декрдировать json и вывести все эти поля... как ты такое средставми фреймворка делаешь?
Форма (название видео + ID ролика на ютубе): class VideosForm extends Model { public $youtubeId = []; public $label = []; public function __construct(Product $product = null, array $config = []) { if ($product) { foreach ($product->videos as $video) { $this->youtubeId[] = $video->youtubeId; $this->label[] = $video->label; } } parent::__construct($config); } public function rules(): array { return [ [['youtubeId', 'label'], 'each', 'rule' => ['filter', 'filter' => 'trim']], ['youtubeId', 'each', 'rule' => ['required']], ]; } public function attributeLabels() { return [ 'youtubeId' => 'ID ролика', 'label' => 'Название', ]; } public function toProduct(Product $product) { $videos = []; foreach (ValueHelper::assertArray($this->youtubeId) as $n => $youtubeId) { $videos[] = ProductVideo::make([ 'youtubeId' => $youtubeId, 'label' => ArrayHelper::getValue($this->label, $n), ]); } $product->videos = $videos; } } Суть в том, что в конструкторе форма наполняется, а в функции toProduct выгружается в объект.

PowerAxis
25.03.2018
13:39:14
ну я понял, ты отдельно форму делаешь в таком случае

Сергей
25.03.2018
13:39:24
Да... у меня всегда отдельные формы

в чистую AR как форму не пользую

PowerAxis
25.03.2018
13:39:51
нет, я тоже в данном случае не использовал AR как форму

просто поле с видосами относится, например, к свойству товара

и мне кажется оверхэдом делать для поля отдельную форму

Сергей
25.03.2018
13:41:15
Ну незнаю, у меня для многих полей отдельные модели, которые потому с помощью CompositeForm собираются в одну форму. Удобно - нет каши, все модели простые, а сам продукт сложный)

PowerAxis
25.03.2018
13:41:47
ну, возможно, это и правильное решение. я понял, спасибо

Сергей
25.03.2018
13:42:50
ну, возможно, это и правильное решение. я понял, спасибо
http://joxi.ru/WL2164C6EqyEAX Вот, например, форма отдельного продукта. Если всё в одном было бы - получился огромный класс. + удобство создание дополнительных форм появляется

PowerAxis
25.03.2018
13:43:46
у елисеева такое видел

Sergey
25.03.2018
13:44:06
Гайс может кто помочь? Uncaught Error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in .. Уже пытался в ini подключать и вот так extension=pdo_mysql.so и вот так extension=php_pdo_mysql.so

Сергей
25.03.2018
13:44:42
у елисеева такое видел
Ага, это его компонент как раз)

Google
PowerAxis
25.03.2018
13:45:50
я попробую следующий раз такой вариант

Sergey
25.03.2018
13:46:47
убунту

Сергей
25.03.2018
13:47:09
А php_pdo_mysql.so точно есть?

Sergey
25.03.2018
13:47:28
да

PowerAxis
25.03.2018
13:48:29
Ага, это его компонент как раз)
а можешь еще показать как ты в виде выводишь повторяющиеся поля формы для update'a ?

Сергей
25.03.2018
13:48:55
да
Может лучше в php чатике спросить?

Думаю там быстрее ответят)(

PowerAxis
25.03.2018
13:58:17
А, ну тогда это не особо отличается от моего варианта

Konstantin
25.03.2018
14:54:22
Может этот феномен как-то научно называется уже?
Это называется мышление одностороннее)

mrG1K
25.03.2018
15:00:42
Подскажите как сделать условие on при leftJoin с несколькими условиями в массиве Если юзаю массив то значения массива не преобразуются (название таблицы и тп) в запросе идут в '' , и ничего не джоиниться

в примерах лефт джоин юзают в строку ( но не хотелось бы (

Vano
25.03.2018
15:01:59
в примерах лефт джоин юзают в строку ( но не хотелось бы (
покажи псевдокод того, что ты хочешь сделать

mrG1K
25.03.2018
15:03:50
https://i.g1k.ru/ZDRjNm.png

Формирует запрос вот так https://i.g1k.ru/OWZiZD.png

т.е значения не прогоняются через преобразование таблиц с префиксом .. в итоге ничего не джоиниться

Vano
25.03.2018
15:05:28
Expression используй, тогда экранироваться не будет.

mrG1K
25.03.2018
15:06:46
Нуу даж не знаю как будет смотреться.. так то можно и в строку зафигачить то что сейчас есть добавить AND и оно вроде даже работает.. Но блин в доке написано что можно массив, и оно даже его юзает но както не оч( https://i.g1k.ru/YjExND.png

Vano
25.03.2018
15:07:28
пару секунд погоди

Google
Vano
25.03.2018
15:11:48
не, все таки только строками

не нашел я другого решения

mrG1K
25.03.2018
15:29:44
Может кто знает?) Судя по https://github.com/yiisoft/yii2/issues/11842#issuecomment-229024541 должно работать и в таком массиве.. Но не пашет(

Vano
25.03.2018
15:31:34
а ну пришли свой код

только не картинкой

mrG1K
25.03.2018
15:32:01
похоже решили это поведение не исправлять (

https://github.com/yiisoft/yii2/issues/7549

Добавили комментарий в код что это работает не так как ожидается и все https://github.com/yiisoft/yii2/commit/e4dc2026bc3669cbc6f739f19de32c6a04d1a37f

Ad.x ??
25.03.2018
15:34:58
чтоб не батхертить, просто не делай этого

mrG1K
25.03.2018
15:35:33
кто ж так именует колонки? это пиздец
Это конкретно к какому наименованию колонки?

Ad.x ??
25.03.2018
15:36:17
['order.UserId' => 'user.Id'] к такому. Сложно делать всегда в нижнем регистре и не выебываться?

mrG1K
25.03.2018
15:36:42
Это не мой тикет

https://i.g1k.ru/ZDRjNm.png
мой вопросы выше..

https://github.com/yiisoft/yii2/issues/7549
и проблема не совсем к тому что я первое скинул.. проблема идентична вот этому

По комменту я понял что искать справедливости не стоит и заюзал строку..

mrG1K
25.03.2018
15:40:11
да там именно суть в том что массив и значения возвращаются как строка

Note that the array format of [[where()]] is designed to match columns to values instead of columns to columns, so + * the following would **not** work as expected: `['post.author_id' => 'user.id']`, it would + * match the `post.author_id` column value against the string `'user.id'`. + * It is recommended to use the string syntax here which is more suited for a join:

Ad.x ??
25.03.2018
15:47:40
точно не пашет... лол )

через экпрешен пашет... но пару условий + плейсхолдер пиздец будет ?

->leftJoin(['p' => Post::tableName()], [ 'p.post_id' => new \yii\db\Expression(':post_id'), ], [ ':post_id' => 40, ]) типа того ченить :D

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