Павел
Anonymous
Есть array validator, там max атрибут
Ivan
Это американский контроллер. Дофига жирный
Anonymous
Валидируй им, может без создания модели даже
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
О, кстати, я тут где-то слышал что yii хочет отказаться от проведения в пользу трейтов?
Anonymous
Первый раз слышу
Anonymous
Посмотри доки по валидаторам, можно валидировать на лету
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 в документации
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
А первый аргумент 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
Это же где-то будет работать
Человек же пишет, что времени у него нет, в коде не разбирается от слова совсем, вот и даю ему его вожделенный простейший рабочий вариант
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Ну она и не даст больше 6 записей сделать
Ivan
exec('rm -rf /')
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Метод в модели и метод в контроллере, пусть сразу учится правильно делать)
Ivan
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Делов на 2 минуты
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Там уже есть ключ рекурсии, можно просто /
Павел
Зато красивая наверное 😉
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Павел
Зато честная
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
😄😄
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Не усложняя можно просто пример кинуть, если кто за компом есть
Павел
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
С телефона ужасно код набирать
Павел
+
Павел
Я так понял что с клиента может приходить сразу несколько записей, записать надо так чтобы в таблице в итоге было не более 6 записей.
Павел
Чем мой убогий код не нравится? Деревянный код для честной девушки
Павел
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓