Станности save(), update() в консольном приложении.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
andreyrud
Сообщения: 265
Зарегистрирован: 2011.09.26, 14:59

Станности save(), update() в консольном приложении.

Сообщение andreyrud »

Модель Test: id(PK), name, count.
Такой код в консольном приложении:

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

$model = Test::find()
    ->select(['name', 'count'])
    ->orderBy('name')
    ->where(['name' => "Ivan"])
    ->one();
if( $model ) {
    $model->count = 10;
    if( !$model->save() ) {
        var_dump('err: '.$model->getErrors();
    }
}    
Если 'id' не указывать в селекте, то получаю эксепшн:

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

[yii\console\Exception] exception 'yii\console\Exception' with message 'err: [
    'name' => [
        0 => 'Значение «(тут название из поля name = Ivan)» для «Модель» уже занято.'
    ]
    ...
Если 'id' указать, эксепшена не происходит, но поле не обновляется. В логах никаких записей об ошибках нет. С update() тоже самое.

mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

Re: Станности save(), update() в консольном приложении.

Сообщение mkramer »

Так вообще зачем select указывать для activeRecord?

Ответить