@yii2ru

Страница 582 из 1721
Evgeniy
14.09.2017
07:20:54
та там pjax небось
Здравствуйте))

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
В $params у вас что находится
массив с гет-параметрами. Объявляется В контроллере

Где объявление переменной
и передаётся в модель

Дмитрий
14.09.2017
07:27:28
массив с гет-параметрами. Объявляется В контроллере
Я вам не верю. Показывайте код где передается

Evgeniy
14.09.2017
07:27:56
Я вам не верю. Показывайте код где передается
https://gist.github.com/avasites/b4ed0a2070f5e75d3cbb03c12bf65acd

Дмитрий
14.09.2017
07:30:36
https://gist.github.com/avasites/b4ed0a2070f5e75d3cbb03c12bf65acd
Кхм. А вы вкурсе что возвращает функция load?

Evgeniy
14.09.2017
07:31:07
Кхм. А вы вкурсе что возвращает функция load?
Она как бы загружает эти данные сейчас она возвращает false

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

Evgeniy
14.09.2017
07:32:11
Либо true либо false
Но сейчас false

Дмитрий
14.09.2017
07:33:24
Но сейчас false
В вашем случае должен быть $q->load

Вру

Нужно сначала создать нужную модель, потом загружать в нее данные

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
Yii::$app->request->queryParams
Дружище. У меня закралось подозрение что в get ты кладешь не модель

А случайные данные

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
А случайные данные
а почему же в ProductSearch работает так?

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

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

хотя вообще именовать модели во множественном числе - фу

Konstantin
14.09.2017
07:41:34
почему плохому?

ну мало ли, может надо более-менее чистенькую строку запроса иметь

читаемую человеком

Evgeniy
14.09.2017
07:42:21
сделай строку не ?url=turbokompressory, а Products[url]=turbokompressory
А как же тогда всё работает в сгенерированом gii коде? Там же ничего не переделывается

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

а ты свой url наверняка где-то намертво прописал

Evgeniy
14.09.2017
07:43:50
а ты свой url наверняка где-то намертво прописал
Да вижу теперь, что не так) спасибо)) буду дальше пытаться))

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 и так далее. Всё стандартное.

Nurik
14.09.2017
09:20:44
Зачем вешать on submit?
Затем, что надо.

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

Вот тебе и 2 раза

Дмитрий
14.09.2017
09:21:11
Если вы там отправляете данные то они и так отправляются

Либо в функции отдавайте return false

Nurik
14.09.2017
09:21:31
А валидаторы не забыл?
Я хз, я вообще не юзаю эти вещи(ActiveForm). Не мой код.

Admin
ERROR: S client not available

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

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

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
Nurik
14.09.2017
09:28:34
почему?
Потому что это говнище. Постоянные конфликты в js. И потом это мешашина js кода, html кода с php кодом. Это полный пи**(.

Я почитал доку как писать фронтовую валидацию - и это просто трэш. Просто...напросто.

И самое главное:

Дмитрий
14.09.2017
09:31:11
Бля, как отучить людей юзать ActiveForm ? Это просто жесть.
Как это отучить. Просто нужно правильно его использовать

Nurik
14.09.2017
09:31:49
Как это отучить. Просто нужно правильно его использовать
Нет, не нужно его использовать. Особенно, если функционал форм будет расширятся, и местами модифицироваться.

Дмитрий
14.09.2017
09:31:52
Я почитал доку как писать фронтовую валидацию - и это просто трэш. Просто...напросто.
Фронтовая валидация строится по правилам из модели. Сама

Nurik
14.09.2017
09:34:17
Фронтовая валидация строится по правилам из модели. Сама
Возможно я ошибаюсь и это большая трагедия, но это всё-равно плохо (Причины см. выше), потому что многие вещи не очевидны. Код должен описывать сам себя. Нужно знать меру подходу convention over configuration

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?

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