Anonymous
Есть array validator, там max атрибут
Ivan
Это американский контроллер. Дофига жирный
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Это европейский контроллер.
Может китайский? Они любят плодить без ограничений
Anonymous
Валидируй им, может без создания модели даже
Павел
Есть array validator, там max атрибут
Я так понял ограничение не по данным формы, а по количеству записей в таблице. Максимум 6
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Валидируй им, может без создания модели даже
Как вариант, поведение написать и прицепить пусть валидирует и создаёт
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
О, кстати, я тут где-то слышал что yii хочет отказаться от проведения в пользу трейтов?
Anonymous
Первый раз слышу
Anonymous
Посмотри доки по валидаторам, можно валидировать на лету
Ivan
О, кстати, я тут где-то слышал что yii хочет отказаться от проведения в пользу трейтов?
Да хочет, но проблема в динамическом подключении/отключении, но в итоге всё-таки хотят отказаться. Вкорре всего в 3.0
Anonymous
Мне нравятся поведении, лучше Трептов
Anonymous
Трейтов*
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Ну вот интересно как планируется конфигурация трейтов
Anonymous
У тебя массив приходит или как?
Anonymous
Все данные идут в одну модель или в цикле?
Anonymous
Покажи код скрином
Anonymous
Контроллера
Anonymous
Экшена, в частности
Anonymous
Не более 6 моделей?
Юрий
Посты через post 🙈
Anonymous
Эх, код не ахти
Юрий
Я тут кричу это в смысле фреймворк или функциональный пхп?
Юрий
Не похож( а вот на битрикс да
Anonymous
:)
Anonymous
Используй метод load для загрузки данных в модель
Anonymous
Про ) раз все равно не понятно
Anonymous
Приходит 6 строк за один запрос или 6 раз вызывается экшен?
Anonymous
У тебя принимаются данные в модель и сохраняется модель
Anonymous
Может быть создано не более 6 моделей?
Anonymous
Кол-во определяется по сервису?
Anonymous
Я с моба, но постараюсь
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Да скиньте ей уже готовый код)
Павел
В контроллере получай общее количество записей в таблице и смотри сколько ещё можно вставить записей
Anonymous
Хлопцы, напишите с count() и if утонить
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
$model->load('') && $model->validate() в if вместо *=$_POST*
Anonymous
Первое неправильно
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Если выполняется то $model->save()
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
В моделе rules вставить свой валидатор, внутри неё написать метод для проверки, если записей >= 6 то addError
Anonymous
Load первый параметр откуда, второй formName
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Пример есть в custom validators в документации
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Load первый параметр откуда, второй formName
Точно, с тела сложно) главное форм нейм в ''
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
А первый аргумент Yii::$app->request->post()
Ivan
Прочитай, пожалуйста, вдумчиво, весь мануал по Yii
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
if ($model->load(Yii::$app->request->post(), '') && $model->validate()) { $model->save(); }
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Вместо всего этого кода
👀
лол
👀
$service_id->service_id = $model->load('service_id') && $model->validate(); $service_id->service_id в данном случае будет true или false
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Gii есть, он сгенерит как надо)
Ivan
В самом начале action ставишь if (ServiceRecomendation::find()->count() < 6)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Валидатор в модель
Ivan
Бу!
Этому коду от такого хуже не будет
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Если только здесь надо то сценарии есть
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Ну зачем учить говно ваять, это не сложно пусть сразу как надо делает
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Это же где-то будет работать
Павел
$count = MyModel::find() ->count(); while($count < 6){ $var = new MyModel(); $var->data = data; $var->save(); $count++; }
Ivan
Это же где-то будет работать
Человек же пишет, что времени у него нет, в коде не разбирается от слова совсем, вот и даю ему его вожделенный простейший рабочий вариант
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
$count = MyModel::find() ->count(); while($count < 6){ $var = new MyModel(); $var->data = data; $var->save(); $count++; }
Трункейт ещё таблицы, а лучше базы перед этим 😂
Павел
Ну зачем учить говно ваять, это не сложно пусть сразу как надо делает
Какой валидацию человек не может понять как не дать больше 6 записей сохранять в таблицу, а вы валидатором его ща добьете
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Ну она и не даст больше 6 записей сделать
Ivan
exec('rm -rf /')
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Метод в модели и метод в контроллере, пусть сразу учится правильно делать)
Ivan
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Делов на 2 минуты
Павел
Ну она и не даст больше 6 записей сделать
Валидатором через замыкание в нем все равно монстрячить что то подобное
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Там уже есть ключ рекурсии, можно просто /
Павел
Зато красивая наверное 😉
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Павел
Зато честная
Ivan
Валидатором через замыкание в нем все равно монстрячить что то подобное
Люблю через методы, замыкания больше одной строчки в валидаторах не очень
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
😄😄
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Не усложняя можно просто пример кинуть, если кто за компом есть
Павел
Люблю через методы, замыкания больше одной строчки в валидаторах не очень
Да пофиг. Все равно внутри придется монстрячить то же самое
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
С телефона ужасно код набирать
Павел
+
Павел
Я так понял что с клиента может приходить сразу несколько записей, записать надо так чтобы в таблице в итоге было не более 6 записей.
Павел
Чем мой убогий код не нравится? Деревянный код для честной девушки
Павел
Я так понял что с клиента может приходить сразу несколько записей, записать надо так чтобы в таблице в итоге было не более 6 записей.
Коллеги моя ошибка в том что думал с формы может приходить массив записей. Если одна запись за раз то валидатор маст хэв