🎅
как добавить linkOptions к yii/widgets/Menu?
разве в http://www.yiiframework.com/doc-2.0/yii-widgets-menu.html ничего не написано?
Anonymous
Мне нужно добавить ссылку на выход из системы в yii\widgets\Menu с data-method="post"... Но, если я для отдельного пункта предопределяю шаблон ссылки, типа <a href="{url}" data-method="post">{label}</a> POST запрос не срабатывает почему-то, 405 error
Anonymous
Anonymous
Toly
bootstrap.js подключен?
Anonymous
bootstrap.js подключен?
Его не использую. YiiAsset нужен чтобы корректно работал data-method.... но он подключен, и чет нихера
Toly
Да, действительно
Toly
В дебагбаре нет нужного post запроса? Если он падает с другой ошибкой, то может и редирект как fallback сработать
Toly
Имею ввиду браузерные devtools
Anonymous
Кстати, с Html::a все идеально работает
Anonymous
а с обычной ссылкой a нет
Anonymous
:D
Toly
А это ссылка внутри менюшки? Там дропдаун?
Toly
Хотя это вряд ли имеет отношение к делу. Странная ситуация
Anonymous
А это ссылка внутри менюшки? Там дропдаун?
в менюшке просто <a href="user/logout" data-method="post">Выход</a> - не срабатывает Вне менюшки с Html::a все работает отлично, что странно
Anonymous
dropdown там нет
Anonymous
Думаю сейчас свой Nav предопределить от yii\bootstrap\Nav
Anonymous
может в user контроллере verb фильтр только на get?
Anonymous
нет. Only post
Anonymous
Иначе бы 405 error не выдавал (доступ только post запросам)
Пантелеев
пацаны нихуя не понимаю вот передается модели в конструктор сценарий валидации
Пантелеев
а где он задается то?
SiZE
в yii1 ?
Anonymous
Методы scenario/rules. В документации это есть.
Anonymous
Anonymous
Anonymous
В лэйауте регистрирую блок для футера на странице хочу вывести этот блок, - нихера нет
Anonymous
Почему так :(
who are you
а как же альтернативный синтаксис <?php if ($a == 5): ?> <?php endif; ?>
who are you
😄
who are you
или там чисто пехапе?
Anonymous
или там чисто пехапе?
Это я из примера взял
Anonymous
Онли проверить
Anonymous
Но, как видно, неудачно проверил
Пантелеев
ни у кого нет этого курса? http://www.elisdn.ru/oop-week
🎅
пацаны нихуя не понимаю вот передается модели в конструктор сценарий валидации
где то я уже такую фразу слышал "конструктор сценарий валидации"
Konstantin
Все привет! подскажите плиз как можно в ActiveRecord в методе beforeSave проверить что запись новая или обновлена?
Konstantin
$this->isNewRecord
Мне кажется что так не получится т.к. при вызове метода afterSave запись уже будет в базе
Dmitriy
Че это ? isNewRecord как раз оределяет новая запись или нет. Что и требовалось в вопросе
Konstantin
Не не работает. Оказывается нужно подругому public function afterSave($insert, $changedAttributes) { if ($insert) { // Да это новая запись (insert) } else { // Нет, старая (update) } parent::afterSave($insert, $changedAttributes); }
Konstantin
Точно. Пардон) Хотел написать after - написал before )
SiZE
Так и прогаем
Viktor
Почему 1 вариант http://collabedit.com/ypx2d возвращает 0 хотя не должен, он генерирует тоже самое что и 2 вариант и должен был вернуть кол-во записей, а не 0 проверял созданный запрос в mysql кол-во выводил
Viktor
вообще бред какой-то, даже не понятно как такое может быть, ActiveQuery индентичные и отправляемые запросы одинаковые
Toly
Вы посимвольно сравнили запросы? Уверены, что они одинаковые, 1 в 1?
Viktor
да в yii debug одинаковые, щас попробую логи самого mysql посмотреть может там что найду
Toly
Покажите этот запрос, чтобы понимать с чем имеем дело
Toly
В коде у вас отсутствует часть, в которой Query создаётся
Viktor
SELECT COUNT(*) FROM (SELECT DISTINCT items.* FROM items LEFT JOIN item_options_value filters_14 ON filters_14.item_id = items.id WHERE (`items`.`isVisible`=1) AND (`items`.`cid`=10) AND (((`filters_14`.`value` BETWEEN 6 AND 26) OR (`filters_14`.`max_value` BETWEEN 6 AND 26)))) c
Viktor
понял в чем проблема, yii debug не корректно выводит запрос, на самом дели первый вариант отправляет SELECT COUNT(id) FROM (SELECT DISTINCT items.* FROM items LEFT JOIN item_options_value filters_14 ON filters_14.item_id = items.id WHERE (`items`.`isVisible`=1) AND (`items`.`cid`=10) AND (((`filters_14`.`value` BETWEEN '6' AND '26') OR (`filters_14`.`max_value` BETWEEN '6' AND '26')))) c
Viktor
как так получилось что отправилось filters_14.value BETWEEN '6' AND '26' а должен был filters_14.value BETWEEN 6 AND 26
Viktor
тип же ставиться в коде числовой $min_value = floatval(preg_replace('/[^0-9.]*/', '', $values['min']));
Konstantin
Подскажите плиз как получить доступ к полю ActivRecord объекта если для поля используеся псевдоним Например я делаю выборку $post = Post::find()->select(['alias' => 'name'])->one() Как теперь получить доступ к $post->alias ?
SiZE
public $alias
Konstantin
public $alias
Только так?
Toly
Только так?
В populateRecord можно его записать куда угодно
Viktor
нет
Toly
Ну вот и проблема
Toly
Вы сами увидели
Konstantin
В populateRecord можно его записать куда угодно
Тут yii2/ PHP пишет что такое свойство не найдено
Toly
Это метод, его нужно переопределить
Toly
В базовой реализации вот он:
Toly
Viktor
Ну вот и проблема
это понял, но странно что в дебаге без ковычек, так бы сразу понятно было что из-за типа
Toly
В дебаге подстановка параметров происходит в PHP функцией getRawSql(), и её реализация скорее всего не в точности совпадает с PDO
Toly
Она для наглядности просто, это удобней, чем в Yii1, где приходилось мысленно биндить параметры в запрос)
Viktor
Вам не кажется странным что тут нету double? public function getPdoType($data) { static $typeMap = [ // php type => PDO type 'boolean' => \PDO::PARAM_BOOL, 'integer' => \PDO::PARAM_INT, 'string' => \PDO::PARAM_STR, 'resource' => \PDO::PARAM_LOB, 'NULL' => \PDO::PARAM_NULL, ]; $type = gettype($data); return isset($typeMap[$type]) ? $typeMap[$type] : \PDO::PARAM_STR; }
Viktor
вот по этому и отправляется запрос с ковычками, когда по сути у меня число double
Viktor
да смотрел)
Viktor
вообще PDO::PARAM_INT туда все числа целые и не целые
Viktor
если в тот массив добавить 'double' => \PDO::PARAM_INT, то всё корректно работает с числами с плавающей точкой
Artur‌‌‌
Есть у кого примеры приложения, который предназначен чисто для API? без фронта