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
Константин, не хочу показаться грубым, но мне кажется, что вы просто не умеете гуглить
who are you
ALT + INSERT генератор кода вроде
who are you
ну в принципе да ) генерирует эти комменты к методам класса
Dmytro
Извините, но почему не просто $encodeLabels?
Dmytro
http://shot.hsdn.org/2kyJEuJg
да действительно, энкод нужно было отрубить в каждом Итем
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
половина по крайней мере
Nurik
who are you
save(false) вроде отрубает валидацию ?
Nurik
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
Тебе виднее
Андрей
))
who are you
а как быть когда поля в двух таблицах имеют одно название