
Evgeniy
14.09.2017
07:20:54

Дмитрий
14.09.2017
07:25:06

Evgeniy
14.09.2017
07:25:21

Дмитрий
14.09.2017
07:26:05
почему?
В $params у вас что находится

Google

Дмитрий
14.09.2017
07:26:18
Где объявление переменной

Evgeniy
14.09.2017
07:26:41

Дмитрий
14.09.2017
07:27:28

Evgeniy
14.09.2017
07:27:56

Дмитрий
14.09.2017
07:30:36

Evgeniy
14.09.2017
07:31:07

Дмитрий
14.09.2017
07:31:08
Либо true либо false

Evgeniy
14.09.2017
07:32:11

Дмитрий
14.09.2017
07:33:24
Вру
Нужно сначала создать нужную модель, потом загружать в нее данные

Konstantin
14.09.2017
07:34:46
$this->load($params), как понимаю, он загружает данные из адресной строки get параметры, для фильтрации данных.

Google

Konstantin
14.09.2017
07:34:50
вот это неправильно

Evgeniy
14.09.2017
07:35:01
Вру
Да ошибка. Делал как в ProductSearch, который gii сгенерировал

Konstantin
14.09.2017
07:35:13
load загружает не какие-то там get-параметры, а загружает он $params
так надо сперва в этот $params положить нужные вещи

Evgeniy
14.09.2017
07:35:50

Konstantin
14.09.2017
07:35:59
ну например
ну и что там?

Дмитрий
14.09.2017
07:36:57
А случайные данные

Evgeniy
14.09.2017
07:37:11
ну и что там?
var_dump($param) возвращает array(1) { ["url"]=> string(16) "turbokompressory" }

Дмитрий
14.09.2017
07:37:21
Все ясно

Konstantin
14.09.2017
07:37:27
formName()

Evgeniy
14.09.2017
07:37:36

Дмитрий
14.09.2017
07:38:19
load может загружать только данные которые относятся к модели

Evgeniy
14.09.2017
07:38:53

Konstantin
14.09.2017
07:38:55
скорее он "предназначен"
сделай строку не ?url=turbokompressory, а Products[url]=turbokompressory
наверняка все заработает

Дмитрий
14.09.2017
07:40:00

Google

Konstantin
14.09.2017
07:40:46
ну или наоборот, в классе ProductFilter объяви метод formName() и верни в нем пустую строку
это все исходя из предположения, что у Products есть атрибут $url
хотя вообще именовать модели во множественном числе - фу

Дмитрий
14.09.2017
07:41:23

Konstantin
14.09.2017
07:41:34
почему плохому?
ну мало ли, может надо более-менее чистенькую строку запроса иметь
читаемую человеком

Evgeniy
14.09.2017
07:42:21

Konstantin
14.09.2017
07:42:57
а потому что в этом коде и ссылки тоже формируются с учетом formName
а ты свой url наверняка где-то намертво прописал

Evgeniy
14.09.2017
07:43:50

Konstantin
14.09.2017
07:44:02
когда gii сгенерировал форму, он там написал $form->field('url', $model)->...

Konstantin
14.09.2017
07:44:27
и виджет ActiveField заглянул в $model, посмотрел, какой в нем formName() и добавил его к полям
это делается на случай, если у тебя на странице будет две разных формы с одинаковыми атрибутами
чтобы можно было их отличить

Дмитрий
14.09.2017
07:45:29
А load один

Evgeniy
14.09.2017
07:49:43
Спасибо Вам))) http://z-s-t.loc/category/test?ProductFilter[url]=turbokompressory так сработало))

Matviy
14.09.2017
08:29:00
Вообще, если говорить о load(), так там все просто. В нее передается массив, в котором есть ключи типа ModelName[attributeName]. Такие ключи, например, автоматически формируются виджетом форм. Если ModelName совпадает с названием класса модели, в которой вызывается метод load(), и модель имеет соответствующие ключи, то атрибуты заполняются соответствующими значениями. Также, эти аттрибуты должны быть безопастными, чтоб нельзя было просто запросом заполнить, например, поле пароля. или еще что-то такое.
То есть, это просто для удобства. А сам массив может бытьоткуда угодно, в большинстве случаем это чтото-типа Yii::$app->request->post()
http://www.yiiframework.com/doc-2.0/yii-base-model.html#load()-detail

Google

Matviy
14.09.2017
08:31:11
То есть, выглядит где-то так (в случае новой записи):
$model = new User();
$model->load(Yii::$app->request->post());
После этого в модель будет заполнена данными из формы, после чего ее можно сохранить, например.

Nurik
14.09.2017
09:19:14
Проблем может быть мильён
В общем так. Берем голую установку yii2 basic. Создаём форму с помощью activeform. Всё. Вешаем скрипт, в котором:
$('form').on('submit',function(){ // Всё что в теле — повторяется 2 раза.}) Проблема, что обработчик выполняется 2 раза. Никаких pjax и так далее. Всё стандартное.

Дмитрий
14.09.2017
09:20:31

Nurik
14.09.2017
09:20:44

Dmitry
14.09.2017
09:20:54
А валидаторы не забыл?
Вот тебе и 2 раза

Дмитрий
14.09.2017
09:21:11
Если вы там отправляете данные то они и так отправляются
Либо в функции отдавайте return false

Nurik
14.09.2017
09:21:31

Admin
ERROR: S client not available

Nurik
14.09.2017
09:21:45

Dmitry
14.09.2017
09:22:21
Сталкивался не раз с этой проблемой. Вместо самит кнопки вешай обычную. И вешайся на онклик. Хз, костыль, но так работает норм)

Дмитрий
14.09.2017
09:22:42

Dmitry
14.09.2017
09:22:58
В конце аякса обязательно return false!!!

Evgeniy
14.09.2017
09:23:40

Dmitry
14.09.2017
09:23:47
В общем, у меня так работает. Насколько идеально решение-тут можно спорить и я соглашусь, что пахнет костылем

Nurik
14.09.2017
09:23:55
Бля, как отучить людей юзать ActiveForm ? Это просто жесть.

Dmitry
14.09.2017
09:25:40
Активформ по умолчанию юзает аякс валидаторы

Google

Dmitry
14.09.2017
09:25:54

Nurik
14.09.2017
09:26:16

SiZE
14.09.2017
09:27:01

Nurik
14.09.2017
09:28:34
почему?
Потому что это говнище. Постоянные конфликты в js. И потом это мешашина js кода, html кода с php кодом. Это полный пи**(.
Я почитал доку как писать фронтовую валидацию - и это просто трэш. Просто...напросто.
И самое главное:

Дмитрий
14.09.2017
09:31:11

Nurik
14.09.2017
09:31:49

Дмитрий
14.09.2017
09:31:52

Nurik
14.09.2017
09:34:17

Evgeniy
14.09.2017
09:41:34
если нужны формы в модалках без глюков с валидацией и т.д. просто заюзайте magnific popup и не еб?%те бошку

Matviy
14.09.2017
09:42:36
Не знаю, мне нравится очень ActiveForm. Разбираться долго, но потом клепается на ура. Я теперь вообще всю валидацию делаю на клиенте, и аджакс круто работает.

Nurik
14.09.2017
09:43:22
За годы использования yii(1-2) я могу сказать одно: Легко подключить — заебёшься поддерживать. Всегда нужно думать прежде чем что-то подрубить. Всегда.
Всякие там бля kraji и gridview это только для прототайпинга. Не используйте это. Пишите фронт руками.(фреймворки и так далее)

Konstantin
14.09.2017
10:31:43
gridview удобен для себя лично когда нужно по бырику сделать минимальный функционал

Evgeniy
14.09.2017
11:15:33
Ребят, в модель через load() передаю get параметр и yii выдаёт ошибку Setting unknown property. парметр прописал в rules() в safe, но не помогло. В какую сторону копать? Спасибо

Alexei
14.09.2017
11:16:23
Код?

Evgeniy
14.09.2017
11:16:32
Код?
https://gist.github.com/avasites/b26f2790cd15d717576e419e82758eec

Alexei
14.09.2017
11:19:56
Я так понимаю, свойство model отсутствует в модели Products?