Eloquentのデフォルトの$属性は変化しません
質問
$属性プロパティで定義されているデフォルト値は、データベースに保存する前に変化していないようですか?
この設定を持っています:
protected $attributes = array(
'data' => array();
);
public function getDataAttribute($value)
{
return unserialize($value);
}
public function setDataAttribute($value)
{
$this->attributes['data'] = serialize($value);
}
.
GET i get all are getは、文字通り '配列'とpreg_replaceエラーで埋められたデータベースフィールドです。オーバーライドされたsave()
メソッドでデフォルトの属性を指定したら、変異します。
誰もこれを確認することができます。また、提案がありますか?
ありがとう。
解決
オブジェクト自体にデフォルト変数を割り当てています。これは、ミューテータの機能の外側にあります。
最良のオプションは、モデルのコンストラクタにデフォルトを含めることであるため、オブジェクトが作成されたときに呼び出され、突然変異しています。私はこのようなことがうまくいくはずだと思います:
function __construct($attributes = array()) {
parent::__construct($attributes);
$this->data = array();
}
. 所属していません StackOverflow