Обновление определённого поля модели
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Обновление определённого поля модели
Написал новый рецепт. Пока в черновом варианте, в оглавление не вынесен.
Имеет ли право на жизнь и как его назвать?
http://yiiframework.ru/doc/cookbook/ru/ ... fied.field
Имеет ли право на жизнь и как его назвать?
http://yiiframework.ru/doc/cookbook/ru/ ... fied.field
Нравится Yii? Давайте сделаем его лучше!.
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Обновление определённого поля модели
Александр по мне так любой рецепт, любая статья имеет право на жизнь.
Я обязательно читаю.
Я обязательно читаю.
Жду Yii 3!
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Обновление определённого поля модели
Ты используешь две модели User и UserForm, можно узнать из каких соображений? Разве атрибуты, валидация не одинаковые?
Жду Yii 3!
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Обновление определённого поля модели
Не всегда. Например, в таблице User могут хранить настройки: useHttps и notifyMe. Их логично редактировать отдельной формой.
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 107
- Зарегистрирован: 2010.03.17, 12:54
Re: Обновление определённого поля модели
А нельзя ли по-подробнее
А то очень неинформативно получается
Какое такое асинхронное сохранение и как его реализовать к данному рецепту.В моём случае при асинхронном сохранении в метод приходят POST-ом два параметра
А то очень неинформативно получается
Вот, что можно сделать с помощью Yii - Teutonick.ru
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Обновление определённого поля модели
Асинхронное сохранение, это с помощью AJAX'а отсылается POST-данные для сохранения.
Как реализовать работу с формами с помощью AJAX это отдельная тема, абсолютно не связанная с рецептом.
Как реализовать работу с формами с помощью AJAX это отдельная тема, абсолютно не связанная с рецептом.
Жду Yii 3!
- RSol
- Сообщения: 325
- Зарегистрирован: 2010.05.07, 08:36
- Откуда: Северодонецк, Украина
- Контактная информация:
Re: Обновление определённого поля модели
Спасибо за рецепт!
вопрос
в коде:
зачем опять валидация поля? и если она не нужна может стоит использовать так?
вопрос
в коде:
Код: Выделить всё
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: Обновление определённого поля модели
Что значит "опять"? Первый раз идет валидация одной модели (UserForm), второй - другой модели (User).
Жду Yii 3!
- RSol
- Сообщения: 325
- Зарегистрирован: 2010.05.07, 08:36
- Откуда: Северодонецк, Украина
- Контактная информация:
Re: Обновление определённого поля модели
Но ведь по сути это 1 и тоже поле? Или онно имеет разные правила валидации для разных моделей? Мне кажется это нелогично.mc-bear писал(а):Что значит "опять"? Первый раз идет валидация одной модели (UserForm), второй - другой модели (User).
- slavcodev
- Сообщения: 3134
- Зарегистрирован: 2009.04.02, 21:42
- Откуда: Valencia
- Контактная информация:
Re: Обновление определённого поля модели
Две модели, следовательно два набора правил валидации.
Рецепт показывает возможности.
Можно и одной меделью тут обойтись, решать разработчику.
Рецепт показывает возможности.
Можно и одной меделью тут обойтись, решать разработчику.
Жду Yii 3!
Re: Обновление определённого поля модели
В общую копилку:
Если валидация не нужна, то можно еще update() использовать.
Если валидация не нужна, то можно еще update() использовать.
Re: Обновление определённого поля модели
Привет всем.
А почему 500 ошибка? А не, допустим, 400?
А почему 500 ошибка? А не, допустим, 400?
Re: Обновление определённого поля модели
В статье ошибка, не?
смотрим документацию
Очевидно,что должно быть так
Код: Выделить всё
// Валидируем по одному значению, а не всю форму
if ($form->validate('', array($_POST['id']))) {
Код: Выделить всё
public boolean validate(array $attributes=NULL, boolean $clearErrors=true)
Код: Выделить всё
// Валидируем по одному значению, а не всю форму
if ($form->validate(array($_POST['id']))) {
-
- Сообщения: 75
- Зарегистрирован: 2011.01.20, 23:52
Re: Обновление определённого поля модели
Похоже на правду. От себя добавлю: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']));
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Обновление определённого поля модели
Спасибо, исправил.
Нравится Yii? Давайте сделаем его лучше!.
Re: Обновление определённого поля модели
Добрый день, сорри за археологию
А что если какое - то другое поле User не может жить с данным значением? Например объект Шина->Шипы установлен в 1 (шипы есть), валидация проходит (такое значение допустимо), но Шина->Сезон установлено в "лето", а по бизнес-правилам летние шины не могут быть шипованными.
Это ведь универсальный рецепт, он не должен исключать подобных ситуаций.
А что если какое - то другое поле User не может жить с данным значением? Например объект Шина->Шипы установлен в 1 (шипы есть), валидация проходит (такое значение допустимо), но Шина->Сезон установлено в "лето", а по бизнес-правилам летние шины не могут быть шипованными.
Это ведь универсальный рецепт, он не должен исключать подобных ситуаций.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Обновление определённого поля модели
Тогда пишется свой валидатор.
Нравится Yii? Давайте сделаем его лучше!.