Mikhail
В календаре.
mr.
Дратути! Давно чет не заходил 😁
Andrey
mr.
Что как?
Andrey
Ниче не изменилось?
mr.
Да тут мало движухи, но своя атмосфера, я в гиттере зависаю.
mr.
Ilya 🃏
Народ, есть кто хорошо шарит в nginx конфигах?
Или кто-то знает, где найти настройки для prerender.io под yii2 nginx?
Antony
Ilya 🃏
ну я надыбал файл конфига стандартный, что был на сайте prerender.io, влепил оттуда именованный location @prerender в свой конфиг, а в конец обработки try_files для location / прописал @prerender, но ничего, к сожалению, не заработало. Только перестали открываться страницы при попытке открыть любые дальше корня
Максим
Интересный сервис. Полезный?
Vasily
Хрень какая-то. Тяжело доку по инджинксу изучить?
mr.
mr.
А вообще @rzhavy напомнил мне ЛОР, когда не умел на английском искать, часто на ЛОР в выдаче попадал, и вместо ответа на вопроса там чаще посылали читать ман и вообще всяко ТС унижали, намекая на то, что у него руки из жопы растут 😃
SiZE
Есть конструкция. Грид с фильтрами обернутый в ActiveForm.
Для формы заданы параметры
'enableClientValidation' => false,
'enableAjaxValidation' => true,
'validateOnBlur' => true,
'validateOnChange' => true,
'validateOnSubmit' => false,
'validateOnType' => false,
В гриде есть редактируемые поля
[
'attribute' => 'manualOrder',
'format' => 'raw',
'value' => function ($model, $key, $index, $column) use ($form) {
return $form->field($model, '['.$model->id.']manualOrder')->label(false);
},
],
При изменении значний, ajax запроса на валидацию не происходит. Есть предположения почему?
Toly
Эти параметры влияют только на строку с фильтром, ту, что вверху появляется
Toly
Не сразу понял о чём речь, попутал, не обращай внимание на🖕
SiZE
$('#custom-form').yiiActiveForm([], {"validateOnSubmit":false});
пустой массив. хз почему
Александр
он так без селектора вызывается?
SiZE
с селектором.. я скопировал только часть с yiiActiveForm
SiZE
сценарий :)
SiZE
'value' => function ($model, $key, $index, $column) use ($form) {
$model->scenario = $model::SCENARIO_SORT_MANUALLY;
return $form->field($model, '['.$model->id.']manualOrder')->label(false);
},
Павел
Всем привет. Подскажите пожалуйста, может кто знает. Есть ситуация, средствами yii валидируется форма с 4 полями, есть валидатор который проверяет все 4 поля одновременно, т.е. проверяется комбинация данных из 4-х полей. Есть ли способ записывать ошибку глобально для всей модели, а не привязывать ее к кому-то полю, если валидация не проходит?
Toly
Павел, нет, такой возможности нет. Но есть возможность вывести ошибки формы без визуальной привязки к атрибутам, см. \yii\web\Html::errorSummary()
Павел
Понял, спасибо )
SiZE
Павел
Ну вот я и хотел выяснить как и возможно ли это )
SiZE
Перефразирую. Окей, записал ты глобально ошибку в объект модели. И что ты дальше с ней делать собираешься?
Павел
Вывести пользователю например, что данные он ввел неверные
SiZE
Ну переопредели тогда Model::addError() https://github.com/yiisoft/yii2/blob/master/framework/base/Model.php#L610
SiZE
и складывай ошибки как тебе надо
Павел
Ну к такому варианту я тоже уже пришел, просто хотел выяснить нет ли более простых решений
SiZE
Но потом руки будут мешать сидеть 😂
SiZE
SiZE
тут ты получишь самое первое сообщение ошибки из списка
SiZE
Но так от хорошей жизни тоже не делают.
Павел
да тут как ни крути получается не очень
SiZE
Правильней тогда сделать так, как Толя написал про метод Html::errorSummary()
SiZE
Там в цикле обходится массив ошибок. Только в твоем случае тебе надо конкатенировать ошибки в строку для вывода
SiZE
А почему ты не можешь отдавать массив ошибок и потом в представлении его выводить как тебе надо?
Павел
потому что инетрфейс предполагает вывод одной ошибки
Павел
если передавать массив, то мне либо придется из него выдергивать одну, либо привязывать к определенному полю, либо как ты написал
Павел
т.е. у меня только 2 варианта развития событий, либо все хорошо, либо все плохо потому что ...
Anatoliy
Anatoliy
ошибки в форме не рендери
Anatoliy
можешь взять вот это, чтоб проще было http://www.yiiframework.com/extension/yii2-alerts/
Павел
я их и так не рендерю
Павел
тут же не в том вопрос как рендерить
Павел
есть еще вариант добавить отдельное поле error и в нужных случаях писать в него нужную ошибку
Павел
но в этом случае приходится переопределять validate() чтобы он вернул false когда есть ошибки
Anatoliy
ты спросил: как добавить ошибку глобально. вот для этого есть flash message. В контроллере напишешь что-то вроде этого:
if ($model->hasError('field')) {
Yii::$app->session->setFlash('bla bla')
}
Павел
Ну тогда придется как-то контролировать типы ошибок и соответствующий текст
SiZE
SiZE
$errorsMessage = '';
foreach ($model->getErrors() as $errors) {
foreach ($errors as $error) {
$errorsMessage .= $error . '<br />';
}
}
echo $errorsMessage;
SiZE
Если все через AJAX соответственно тоже самое будет на JS для полученного массива
Павел
в общем понятно, что вариантов масса, вопрос собственно был в том, есть ли какое-то стандартное средство Yii позволяющее просто и быстро это сделать без дополнительных допилок, понятно что такого инструмента нет и далее можно вечно рассматривать сотни вариантов того как можно это реализовать
SiZE
Павел
ну если в ходе валидации ошибка не запишется стандартным способом, а запишется в какое-то кастомное поле, то функция вернет true
Konstantin
Всем привет! Кто подскажет, есть ли в yii2 встроеные средства для геолокации? Нужно опрделить страну юзера
Максим
Это на уровне html5 решается обычно.
Влад
https://github.com/maxmind/GeoIP2-php в помощь
Влад
Есть для yii2 пакет https://github.com/lysenkobv/yii2-geoip , но он использует устарешвую базу данных.
Надо форкнуть и немного подщаманить.
SiZE
Виталий
http://www.yiiframework.com/doc-2.0/guide-structure-assets.html
Виталий
Как опубликовать asset без сжатия?
Vasily
Не сжимать?)
Виталий
Как это сделать? Команда yii asset требует вызова yuicompressor.jar, мне нужно только переместить папки в веб-доступную директорию.
SiZE
Эммм. Оно итак вроде не сжимает
SiZE
Вчера шарил по скриптам из assets
Виталий
Скажем так, оно преобразует. Размер в моем случае увеличивается, но мне нужно опубликовать asset как есть.
Виталий
Может есть вариант заменить yuicompressor на простую склейку?
Виталий
Нашёл пока https://github.com/yiisoft/yii2/issues/10593#issuecomment-243415321
Виталий
Александр
вопрос номер раз, зачем вызывать консольную команду для публикации ресурсов?
SiZE
обновлять кеш при деплое например
Александр
действительно
Виталий