3 回答
TA贡献1779条经验 获得超6个赞
Eloquent 模型使用魔术方法(__call、__callStatic)将调用传递给 Eloquent Builder 类。因此,Model::create() 实际上是将调用传递给 Builder::create() 方法。
但是,如果您调查该方法,它与调用基本相同:
$model = new Model($attributes); $model->save();
通过直通的(查询)构建器的这种混合允许您使用查询方法,例如 Model::where()
TA贡献1783条经验 获得超4个赞
你可以在这里在 github 中找到它
public function create(array $attributes = [])
{
return tap($this->newModelInstance($attributes), function ($instance) {
$instance->save();
});
}
/**
* Save a new model and return the instance. Allow mass-assignment.
*
* @param array $attributes
* @return \Illuminate\Database\Eloquent\Model|$this
*/
public function forceCreate(array $attributes)
{
return $this->model->unguarded(function () use ($attributes) {
return $this->newModelInstance()->create($attributes);
});
}
TA贡献1825条经验 获得超6个赞
检查以下文件
PATH_TO_PROJECT/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php
- 3 回答
- 0 关注
- 138 浏览
添加回答
举报