如何获取模型然后一次清除其属性,以便其所有属性都变为null
?
有这方法吗?
例如:
$model = Model::findOrFail(1);
$model->clearAttributes();
答案 0 :(得分:0)
想出了这个:
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;
}
}
}
咩。
答案 1 :(得分:0)
你可以这样做:
$model = Model::findOrFail(1);
$model->fill(array_fill_keys($model->getFillable(), null));
getFillable()
会为您提供可填充属性列表,array_fill_keys()
会创建一个包含这些键的数组,并null
作为值。
如果您想在此之后将模型保存到数据库,只需执行$model->save();