FreeTibet
@FreeTibet
dharma supplier

YII: По каким причинам Model->Save() можеть не сохранять в базу?

Модель:
namespace common\models;

use Yii;
use yii\base\Model;

class Messages extends \yii\db\ActiveRecord
{
    public $message;
    public $subject;
    public $creation_date;
    public $update_date;
    public $status;
    public $user_id;
    public $parent_id;


    public function rules()
    {
        return [
            'blank' => [
                ['subject', 'message'],
                'required',
                'message' => 'This field can not be blank',
            ]
        ];
    }

    public function saveDialog() {
        if ($this->validate()) {
            $dialog = new Messages();
            //$dialog  = Messages::findOne(1);
            $dialog->message = '111';
            $dialog->subject = "1222";
            var_dump($dialog);
            return $dialog->save();
        } else {
            return false;
        }
    }
}


Все выполняется без ошибок и в таблице создается пустая строка.

вот дамп того, что посылается в save()
object(common\models\Messages)#113 (15) {
  ["message"]=
  string(3) "test"
  ["subject"]=
  string(4) "test"
  ["creation_date"]=
  NULL
  ["update_date"]=
  NULL
  ["status"]=
  NULL
  ["user_id"]=
  NULL
  ["parent_id"]=
  NULL
  ["_attributes":"yii\db\BaseActiveRecord":private]=
  array(0) {
  }
  ["_oldAttributes":"yii\db\BaseActiveRecord":private]=
  NULL
  ["_related":"yii\db\BaseActiveRecord":private]=
  array(0) {
  }
  ["_errors":"yii\base\Model":private]=
  NULL
  ["_validators":"yii\base\Model":private]=
  NULL
  ["_scenario":"yii\base\Model":private]=
  string(7) "default"
  ["_events":"yii\base\Component":private]=
  array(0) {
  }
  ["_behaviors":"yii\base\Component":private]=
  array(0) {
  }
}


И самое для меня странное, что точно такой же код в другой модели отлично работает (
  • Вопрос задан
  • 792 просмотра
Решения вопроса 1
qonand
@qonand
Software Engineer
удалите это
public $message;
public $subject;

посмотрите исходный код ActiveRecord - как в нем устроены атрибуты, тогда у Вас вопросы отпадут.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы