【发布时间】:2020-05-11 04:36:27
【问题描述】:
我有一些属性,需要在使用create() 或save() 方法时自动设置。
型号:
class SampleModel extends Model
{
protected $guarded = ['id'];
public function setRandomColumnAttribute($value=null)
{
if(!is_string($hostname)){
$value = "I set the value here";
}
$this->attributes['random_column'] = $value;
}
}
控制器
use App\SampleModel;
class SomeController extends Controller
{
public function something()
{
SampleModel::create([
'name' => 'Jeff',
]);
// or instead of the above:
// $model = new SampleModel;
// $model->name = 'Jeff';
// $model->save();
}
}
我需要保存 random_column 值,如您所见,该值在模型本身中定义,而不是从控制器传递。
如果我使用请注意:
SampleModel::create([
'name' => 'Jeff',
'random_column' => true // or anything other than string
]);
它可以工作并设置值,但是有什么方法可以避免每次都通过它并在模型中自动设置它?
【问题讨论】:
标签: php laravel eloquent model