質問

$属性プロパティで定義されているデフォルト値は、データベースに保存する前に変化していないようですか?

この設定を持っています:

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();
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top