andrew
а не в контроллере
andrew
гугли
who are you
блин ( я забыл
andrew
yii2 exist validator
who are you
я просто хотел в этот раз сделать не подглядывая никуда, чисто чтобы усвоить
andrew
http://www.yiiframework.com/doc-2.0/guide-tutorial-core-validators.html#exist
andrew
зря
andrew
это тупо
who are you
да, знаю это, но я дебил забыл что в модели есть же rules и реквайр проверка (
andrew
))
who are you
))
http://shot.hsdn.org/r3ktuIeZ
who are you
теперь то я правильно сделал надеюсь ))
andrew
-
andrew
if ($model->load(Yii::$app->request->post()) && $model->save()) { redirect }
who are you
ок
who are you
виджет навигации экранирует теги (
who are you
http://shot.hsdn.org/nyths22N
who are you
http://shot.hsdn.org/4V8mVkO2
who are you
а если вставить например сюда http://shot.hsdn.org/GU1Yleww
who are you
уже не экранирует
who are you
http://shot.hsdn.org/uZg1wBzB
who are you
я об этом Nav::widget
Амаль
Там надо помоему template менять
Dmytro
http://www.yiiframework.com/doc-2.0/yii-bootstrap-nav.html#$encodeLabels-detail
Амаль
А вот получше решение
who are you
спасибо) ща буду соображать
who are you
http://shot.hsdn.org/2kyJEuJg да действительно, энкод нужно было отрубить в каждом Итем
👀
:D Константин, не хочу показаться грубым, но мне кажется, что вы просто не умеете гуглить
Nurik
я никогда его не понимал и не понимаю нахрена ему эти комменты нужны
Доки по методу по ctrl+q (Может у кого по другому уже не помню это стандартная комбинация или нет.) И потом, в энтепрайс заставляют доки писать к продукту. А так если всё это время документировал код, можно нагенерировать доки из кода.
who are you
ALT + INSERT генератор кода вроде
who are you
ну в принципе да ) генерирует эти комменты к методам класса
Dmytro
Извините, но почему не просто $encodeLabels?
Dmytro
http://shot.hsdn.org/2kyJEuJg да действительно, энкод нужно было отрубить в каждом Итем
Nurik
ALT + INSERT генератор кода вроде
Это чтобы вставить. Я про то, чтобы прочитать документацию по методу. У меня это ctrl+q.
Nurik
Вот про это.
who are you
да, есть такое
who are you
тупой вопрос есть) public function actionUpdate($id) как сюда передаются параметры для этого метода))
who are you
похоже это простой get параметр который я обычно по другому получал
invariance
человеки
invariance
почему не сейвятся данные?
invariance
public function actionUpdate() { $params = Yii::$app->request->get(); $task = Task::findOne($params['id']); $task->title = $params['title']; $task->save(); return $this->redirect(['index']); }
Dmytro
а валидация проходит?
Dmytro
посмотрите на CRUD который генерирует gii, там update нормально написан
invariance
ох
invariance
ох уж эти атрибуты в yii
Dmytro
не вижу ничего сверхъестественного
who are you
ща скажу почему )
who are you
потому что ты не апдейтишь
who are you
а типа сохраняешь впервые
who are you
чтобы метод save апдейтил
who are you
модель нужно заново инициализировать
who are you
а у тебя модель только один раз вызывается
who are you
недвано с этим возился, нет бы сделать метод update и не мучить нас, они решили все спихнуть в save
invariance
В смыысле?
invariance
если я инициализирую, то новая строка создастся же
invariance
а мне нужно обновить существующую
who are you
два раза модель new делай
who are you
не сейв а new два раза
invariance
О_О
invariance
как это вообще работает
Nurik
Возможно валидацию не проходишь. Дампни $task->errors, если пусто, тогда скорее всего safe не задан для title. В остальных случаях все должно работать.
invariance
Еее
invariance
спасибо
invariance
А можно как то валидацию отключить для модели в определенном контроллере?
invariance
например в админке оно мне не нужно
invariance
половина по крайней мере
who are you
save(false) вроде отрубает валидацию ?
invariance
Респект
invariance
Нурик красавчик
Nurik
public function actionUpdate($id,$title) { $task = $this->loadTaskBy($id); $task->title = $title; if($task->save()){ return $this->redirect(['index']); } else{ if(YII_DEBUG){ var_dump($task->errors); } //перенаправлять на страницу ошибок или флэш сообщение } }
Nurik
Вот так можешь переписать. Так удобнее дебажить.
who are you
забыли
who are you
throw new HttpException
invariance
$task->status = 4; $task->save(false); почему вместо 4 сохраняет 2? о_О
SiZE
Тебе виднее
Андрей
))
Андрей
$task->status = 4; $task->save(false); почему вместо 4 сохраняет 2? о_О
из-за невнимательности. Где-то простая глупая ошибка. Может ты вообще другую БД или таблицу смотришь. Может у тебя before save в модели. Или еще что-то.
who are you
а как быть когда поля в двух таблицах имеют одно название