2017-10-08 9 views
0

モデルを取得して一度にその属性をすべてクリアすると、すべての属性がnullになるのですか?モデルをフェッチして属性をクリアする

これには方法がありますか?例えば

public $protected_schema = ['id', 'created_at', 'updated_at']; 

public function clearAttributes() 
{ 
    foreach (Schema::getColumnListing($this->getTable()) as $name) { 
     if (!in_array($name, $this->protected_schema)) { 
      $this->{$name} = null; 
     } 
    } 
} 

MEH:

$model = Model::findOrFail(1); 
$model->clearAttributes(); 

答えて

0

はこの思い付きました。

0

あなたはこのような何かを行うことができます:

$model = Model::findOrFail(1); 
$model->fill(array_fill_keys($model->getFillable(), null)); 

getFillable()はあなたに充填可能なプロパティのリストを与えるとarray_fill_keys()が値としてこれらのキーを持つ配列とnullを作成します。

その後モデルをDBに保存する場合は、ただ実行してください$model->save();

関連する問題