Обновление определённого поля модели

Обсуждение документации. Переводы Cookbook и авторские рецепты.
Ответить
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Обновление определённого поля модели

Сообщение samdark »

Написал новый рецепт. Пока в черновом варианте, в оглавление не вынесен.

Имеет ли право на жизнь и как его назвать?

http://yiiframework.ru/doc/cookbook/ru/ ... fied.field
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Обновление определённого поля модели

Сообщение slavcodev »

Александр по мне так любой рецепт, любая статья имеет право на жизнь.
Я обязательно читаю.
Жду Yii 3!
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Обновление определённого поля модели

Сообщение slavcodev »

Ты используешь две модели User и UserForm, можно узнать из каких соображений? Разве атрибуты, валидация не одинаковые?
Жду Yii 3!
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Обновление определённого поля модели

Сообщение samdark »

Не всегда. Например, в таблице User могут хранить настройки: useHttps и notifyMe. Их логично редактировать отдельной формой.
NetStranger
Сообщения: 107
Зарегистрирован: 2010.03.17, 12:54

Re: Обновление определённого поля модели

Сообщение NetStranger »

А нельзя ли по-подробнее
В моём случае при асинхронном сохранении в метод приходят POST-ом два параметра
Какое такое асинхронное сохранение и как его реализовать к данному рецепту.
А то очень неинформативно получается
Вот, что можно сделать с помощью Yii - Teutonick.ru
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Обновление определённого поля модели

Сообщение slavcodev »

Асинхронное сохранение, это с помощью AJAX'а отсылается POST-данные для сохранения.
Как реализовать работу с формами с помощью AJAX это отдельная тема, абсолютно не связанная с рецептом.
Жду Yii 3!
Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: Обновление определённого поля модели

Сообщение RSol »

Спасибо за рецепт!

вопрос
в коде:

Код: Выделить всё

if($user->hasAttribute($_POST['id']) && !$user->save(true, array($_POST['id'])){
        throw new CHttpException(500, "Unable to save user data");
    }
 
зачем опять валидация поля? и если она не нужна может стоит использовать так?

Код: Выделить всё

if($user->hasAttribute($_POST['id']) && !$user->saveAttributes(array($_POST['id'])){
        throw new CHttpException(500, "Unable to save user data");
    }
 
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Обновление определённого поля модели

Сообщение slavcodev »

Что значит "опять"? Первый раз идет валидация одной модели (UserForm), второй - другой модели (User).
Жду Yii 3!
Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: Обновление определённого поля модели

Сообщение RSol »

mc-bear писал(а):Что значит "опять"? Первый раз идет валидация одной модели (UserForm), второй - другой модели (User).
Но ведь по сути это 1 и тоже поле? Или онно имеет разные правила валидации для разных моделей? Мне кажется это нелогично.
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Обновление определённого поля модели

Сообщение slavcodev »

Две модели, следовательно два набора правил валидации.
Рецепт показывает возможности.
Можно и одной меделью тут обойтись, решать разработчику.
Жду Yii 3!
Аватара пользователя
Tokolist
Сообщения: 113
Зарегистрирован: 2010.03.01, 22:03

Re: Обновление определённого поля модели

Сообщение Tokolist »

В общую копилку:
Если валидация не нужна, то можно еще update() использовать.
dns
Сообщения: 1
Зарегистрирован: 2010.08.24, 16:41

Re: Обновление определённого поля модели

Сообщение dns »

Привет всем.
А почему 500 ошибка? А не, допустим, 400?
aleksp
Сообщения: 12
Зарегистрирован: 2011.07.26, 12:38

Re: Обновление определённого поля модели

Сообщение aleksp »

В статье ошибка, не?

Код: Выделить всё

  // Валидируем по одному значению, а не всю форму
  if ($form->validate('', array($_POST['id']))) {
 
смотрим документацию

Код: Выделить всё

public boolean validate(array $attributes=NULL, boolean $clearErrors=true) 
Очевидно,что должно быть так

Код: Выделить всё

  // Валидируем по одному значению, а не всю форму
  if ($form->validate(array($_POST['id']))) {
 
maschingan
Сообщения: 75
Зарегистрирован: 2011.01.20, 23:52

Re: Обновление определённого поля модели

Сообщение maschingan »

aleksp писал(а):В статье ошибка, не?

Код: Выделить всё

  // Валидируем по одному значению, а не всю форму
  if ($form->validate('', array($_POST['id']))) {
 
смотрим документацию

Код: Выделить всё

public boolean validate(array $attributes=NULL, boolean $clearErrors=true) 
Очевидно,что должно быть так

Код: Выделить всё

  // Валидируем по одному значению, а не всю форму
  if ($form->validate(array($_POST['id']))) {
 
Похоже на правду. От себя добавлю:

Код: Выделить всё

echo json_encode('error', $form->getErrors($_POST['id']));
 
Что-то здесь не так... http://ru2.php.net/manual/en/function.json-encode.php
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Обновление определённого поля модели

Сообщение samdark »

Спасибо, исправил.
jmen
Сообщения: 1
Зарегистрирован: 2015.02.25, 15:07

Re: Обновление определённого поля модели

Сообщение jmen »

Добрый день, сорри за археологию :)

А что если какое - то другое поле User не может жить с данным значением? Например объект Шина->Шипы установлен в 1 (шипы есть), валидация проходит (такое значение допустимо), но Шина->Сезон установлено в "лето", а по бизнес-правилам летние шины не могут быть шипованными.

Это ведь универсальный рецепт, он не должен исключать подобных ситуаций.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Обновление определённого поля модели

Сообщение samdark »

Тогда пишется свой валидатор.
Ответить