
Виталий
03.11.2016
10:31:27
Почему сначала вызывается afterValidateAttribute, а потом у этого атрибута меняется статус?
Написал обработку function hasError($form) {
var attributes = $form.yiiActiveForm('data').attributes;
var hasError = false;
for (var i = 0; i < attributes.length; i++) {
if (attributes[i].status !== 1) {
hasError = true;
break;
}
}
return hasError;
}
Но она не работает, потому что status=1 ещё не присвоен

Р2
03.11.2016
13:50:18
Нужны мидл+ на удалёнку фултайм. Стучитесь в личку!

Google

Виталий
06.11.2016
06:32:53
PJAX + клиентская валидация + сценарии ActiveForm не работают вместе?
Скиньте пример, если есть рабочий

SiZE
06.11.2016
08:18:14
Работают

Виталий
06.11.2016
08:20:40
Надо отправить форму onChange при прошедших валидацию полях, указанных в сценарии, как это сделать?
Иными словами, первый шаг, как заставить pjax отправить форму без нажатия на submit?

SiZE
06.11.2016
17:27:35
Я не у компа надо курить yii.activeform.js
По необходимости расширять объект формы

don
09.11.2016
05:14:32
Всем привет.
Подскажите, пожалуйста, как в обработчике события afterValidateAttribute получить статус валидации всей формы, чтобы удалить атрибут disabled у кнопки(submit)?


Antony
09.11.2016
07:27:30
afterValidateAttribute выполняется после валидации одного аттрибута.
Смотри в сторону afterValidate
/**
* afterValidate event is triggered after validating the whole form.
* The signature of the event handler should be:
* function (event, messages, errorAttributes)
* where
* - event: an Event object.
* - messages: an associative array with keys being attribute IDs and values being error message arrays
* for the corresponding attributes.
* - errorAttributes: an array of attributes that have validation errors. Please refer to attributeDefaults for the structure of this parameter.
*/
afterValidate: 'afterValidate'
Ну и вообще глянь тут как все работает https://github.com/yiisoft/yii2/blob/master/framework/assets/yii.activeForm.js
В случае чего можно переопределить yii\widgets\ActiveFormAsset и задать свой обработчик yii.activeForm.js


Vasya
09.11.2016
21:18:02
Exception – yii\base\Exception
Failed to create directory "/var/www/site/runtime/logs": mkdir(): Permission denied
Что-то я не вкурил. Вроде, и 777 выставил, и владельцем поставил nginx:nginx.
Что я упустил?

Anatoly
09.11.2016
21:18:55
nginx не создаёт директорию, это делает обычно php-fpm, смотри из под какого юзера он запущен

Vasya
09.11.2016
21:19:07
Ща

Google

Vasya
09.11.2016
21:19:33
$ ps aux | grep php-fpm
root 12735 0.0 0.4 276216 15656 ? Ss 00:03 0:00 php-fpm: master process (/etc/php-fpm.conf)
nginx 12739 0.0 0.3 279284 13304 ? S 00:03 0:00 php-fpm: pool www
nginx 12740 0.0 0.2 278300 8780 ? S 00:03 0:00 php-fpm: pool www
nginx 12741 0.0 0.2 278300 10592 ? S 00:03 0:00 php-fpm: pool www
nginx 12742 0.0 0.2 278300 8780 ? S 00:03 0:00 php-fpm: pool www
nginx 12743 0.0 0.3 279284 13304 ? S 00:03 0:00 php-fpm: pool www
user 13737 0.0 0.0 118516 2248 pts/3 S+ 00:19 0:00 grep —color=auto php-fpm

Anatoly
09.11.2016
21:21:41
Пробуй
sudo -u nginx mkdir <dir>
Если прав нет, то проблема имеет системный характер
Убедись, что у тебя selinux не стоит в системе, например

Vasya
09.11.2016
21:22:28
Стоит :(
Fedora 23, есличё.

Anatoly
09.11.2016
21:24:33

Vasya
09.11.2016
21:24:45
У меня user не в sudousers
user — это логин
А как выполнить это из-под рута?

Anatoly
09.11.2016
21:25:42
Так же

Vasya
09.11.2016
21:27:06
# sudo -u nginx mkdir /var/www/rap/runtime/logs
Отлично создался каталог
Отключил selinux — заработало. Спасибо.
public function actionIndex()
{
return $this->render('//index/main');
}
По какому принципу выбирается layout?

Дмитрий
10.11.2016
03:53:36
http://www.yiiframework.com/doc-2.0/yii-base-controller.html#$layout-detail

Vasya
10.11.2016
15:31:57
Из документации: "If false, no layout will be applied."
"Defaults to null, meaning the actual layout value should inherit that from $module's layout value. "

Константин
11.11.2016
12:55:20
Всем привет! Кто подскажет, можно ли через hasOne связать два поля одной таблицы, или это можно сделать другим спобом? Я попробовал, вроде не работает, хотя проблема может быть в другом.

Google

SiZE
11.11.2016
12:56:20
Хоть тридцать три

Константин
11.11.2016
13:03:22
т.е. если к примеру у меня есть таблица messages с полями id, parent_message, message и я хочу прописать такую связь
class Message
{
...
public function getParentMessage()
{
return $this->hasOne(Message::className(), ['id' => 'parent_message']);
}
}
то все должно работать?

Vasya
15.11.2016
12:00:01
Всем утра.
А где вы храните свои виджеты?

Pavel
15.11.2016
12:00:29
widgets

Vasya
15.11.2016
12:01:42
Этот каталог в корне проекта? Просто я такого не вижу, вот и решил уточнить, как принято.

Pavel
15.11.2016
12:03:09
если басик то в корне, если адвенсед то во фронте или в беке, где ты их собираешься пользоваться

Vasya
15.11.2016
12:04:03
басик

Pavel
15.11.2016
12:04:38
ну всё в корне создавай папку)) не бойся папки создавать)

Vasya
15.11.2016
12:07:46
Не хочу лезть в чужой монастырь со своим уставом. Если что, до этого 2 года говнокодил под CodeIgniter, но всё равно не покидало ощущение, что что-то делаю не так.

Pavel
15.11.2016
12:14:50
А есть кто юзал или юзает эту штуку https://github.com/trntv/yii2-starter-kit

SiZE
15.11.2016
19:24:45
С отдельными пакетами удобней работать

Кирилл
16.11.2016
07:22:32
/ping@Shizoid_bot

Тимур
16.11.2016
20:12:33
/ping@Shizoid_bot
/ping@Shizoid_bot

Влад
16.11.2016
20:24:20
/ping@Shizoid_bot

Vera
16.11.2016
21:04:03
/ping@Shizoid_bot
/ping@Shizoid_bot

Vasya
16.11.2016
21:23:29
А чем отличается advanced от basic?
Мне нужно делать проект с админкой, насколько принципиален в данном случае выбор между advanced и basic?

Google

Vasya
16.11.2016
21:25:17
А как лучше организовать проект, чтобы лэйауты и вьюшки были разделены между админкой и общедоступной частью?

Олег
16.11.2016
21:25:31
в advanced более гибко организованы файлы и грамотнее, но запутаннее может показаться для начинающего
лучше advanced брать
тем более, если заранее известно, что будет админка

Vasya
16.11.2016
21:27:50
То есть разница лишь в том минимальном наборе контроллеров/виджетов/вьюшек, которые изначально есть после установки?

Олег
16.11.2016
21:28:35
да. И заранее уже фронтэнд и админка разделены на два приложения

Vasya
16.11.2016
21:28:55
Спасибо. Я тут чуть-чуть погуглил, так и есть.

Олег
16.11.2016
21:29:02
и по мелочам всякие вещи сконфигурины более продвинуто, все не вспомню
например, в advanced, уже есть скрипт для генерации конфигов для разных окружений
в basic ее тоже можно перенести потом при необходимости, но это доп. гембель
не раз жалел, что начал какие-то приложения на basic. На нем обычно кажется логичнее делать какие-то простые приложения (часто без админки), но часто приложения растут все же... И плюс с basic как-то проще управляться на shared хостингах, но shared хостинги уже почти вымерли

Vasya
16.11.2016
21:32:46
Спасибо, тогда выберу advanced, чтобы потом не корячиться.

Олег
16.11.2016
21:32:49
можно сказать, что при старте, возможно, нужно чуть больше времени чтоб разобраться и подготовить проект, но в перспективе оно того стоит. Плюс потом привыкаешь

Vasya
16.11.2016
21:49:43
А чем сложнее разворачивание на shared-хосинге?

Олег
16.11.2016
21:51:43
тем, что у них там предопределенный webroot
и он один и изменять имя его нельзя, может это мне так повезло. Есть руководства, как это сделать все же, но как по мне это маленький ад
https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/topic-shared-hosting.md

Vasya
16.11.2016
22:54:54
Допустим, есть контроллер с 10 экшенами (или как у вас это принято называть?), в самом начале объявление:
use common\models\LoginForm;
И используется это только в одном экшене. Внутри экшена контроллера можно подгружать модули или это по-другому принято решать?

Олег
16.11.2016
22:57:55
так это не подгрузка модуля, а использование namespace

Vasya
16.11.2016
23:02:44
ой
позорище

Google

Vasya
17.11.2016
00:31:07
Что я делаю не так?

Олег
17.11.2016
00:35:35
сложно сказать
а просто migrate срабатывает?

Vasya
17.11.2016
00:35:47
ДА
Видимо, дело в окружении. Я сейчас под виндой, через стандартную командную строку всё работает.
В экшене указываю layout index.php, но почему-то Yii2 пытается отрендерить layout main.php

Кирилл
17.11.2016
03:06:54
А зачем внутри actionInit actionTest? Эт чего-то даёт?