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

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

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

Сообщение samdark » 2009.07.21, 14:49

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

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

http://yiiframework.ru/doc/cookbook/ru/ ... fied.field

Аватара пользователя
slavcodev
Сообщения: 3133
Зарегистрирован: 2009.04.02, 21:42
Откуда: Altea, Spain
Контактная информация:

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

Сообщение slavcodev » 2009.07.21, 15:04

Александр по мне так любой рецепт, любая статья имеет право на жизнь.
Я обязательно читаю.
Жду Yii 3!

Аватара пользователя
slavcodev
Сообщения: 3133
Зарегистрирован: 2009.04.02, 21:42
Откуда: Altea, Spain
Контактная информация:

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

Сообщение slavcodev » 2009.09.03, 22:22

Ты используешь две модели User и UserForm, можно узнать из каких соображений? Разве атрибуты, валидация не одинаковые?
Жду Yii 3!

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

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

Сообщение samdark » 2009.09.04, 19:09

Не всегда. Например, в таблице User могут хранить настройки: useHttps и notifyMe. Их логично редактировать отдельной формой.

NetStranger
Сообщения: 107
Зарегистрирован: 2010.03.17, 12:54

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

Сообщение NetStranger » 2010.04.12, 16:50

А нельзя ли по-подробнее
В моём случае при асинхронном сохранении в метод приходят POST-ом два параметра
Какое такое асинхронное сохранение и как его реализовать к данному рецепту.
А то очень неинформативно получается
Вот, что можно сделать с помощью Yii - Teutonick.ru

Аватара пользователя
slavcodev
Сообщения: 3133
Зарегистрирован: 2009.04.02, 21:42
Откуда: Altea, Spain
Контактная информация:

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

Сообщение slavcodev » 2010.04.12, 16:59

Асинхронное сохранение, это с помощью AJAX'а отсылается POST-данные для сохранения.
Как реализовать работу с формами с помощью AJAX это отдельная тема, абсолютно не связанная с рецептом.
Жду Yii 3!

Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

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

Сообщение RSol » 2010.05.27, 08:02

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

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

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

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
Сообщения: 3133
Зарегистрирован: 2009.04.02, 21:42
Откуда: Altea, Spain
Контактная информация:

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

Сообщение slavcodev » 2010.05.27, 08:07

Что значит "опять"? Первый раз идет валидация одной модели (UserForm), второй - другой модели (User).
Жду Yii 3!

Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

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

Сообщение RSol » 2010.05.27, 08:16

mc-bear писал(а):Что значит "опять"? Первый раз идет валидация одной модели (UserForm), второй - другой модели (User).
Но ведь по сути это 1 и тоже поле? Или онно имеет разные правила валидации для разных моделей? Мне кажется это нелогично.

Аватара пользователя
slavcodev
Сообщения: 3133
Зарегистрирован: 2009.04.02, 21:42
Откуда: Altea, Spain
Контактная информация:

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

Сообщение slavcodev » 2010.05.27, 08:42

Две модели, следовательно два набора правил валидации.
Рецепт показывает возможности.
Можно и одной меделью тут обойтись, решать разработчику.
Жду Yii 3!

Аватара пользователя
Tokolist
Сообщения: 113
Зарегистрирован: 2010.03.01, 22:03

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

Сообщение Tokolist » 2010.05.29, 22:05

В общую копилку:
Если валидация не нужна, то можно еще update() использовать.

dns
Сообщения: 1
Зарегистрирован: 2010.08.24, 16:41

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

Сообщение dns » 2010.08.24, 16:47

Привет всем.
А почему 500 ошибка? А не, допустим, 400?

aleksp
Сообщения: 12
Зарегистрирован: 2011.07.26, 12:38

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

Сообщение aleksp » 2011.09.05, 07:01

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

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

  // Валидируем по одному значению, а не всю форму
  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 » 2011.09.05, 13:48

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
Администратор
Сообщения: 8552
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

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

Сообщение samdark » 2011.09.05, 16:20

Спасибо, исправил.

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

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

Сообщение jmen » 2015.02.25, 15:12

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

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

Это ведь универсальный рецепт, он не должен исключать подобных ситуаций.

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

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

Сообщение samdark » 2015.06.07, 11:13

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

Ответить