雄辩模型的创建方法在哪里?

Ada*_*dam 0 php laravel laravel-5

可以通过批量分配在Laravel中创建每个模型:

$flight = App\Flight::create(['name' => 'Flight 10']);
Run Code Online (Sandbox Code Playgroud)

在Laravel 5.6中哪里可以找到此方法的代码?

我在课堂上看了一下,Illuminate\Database\Eloquent\Model但是找不到create方法。

我还检查了所有特征(从HasAttributesGuardsAttributes),但那里也没有找到任何create方法。

在此处输入图片说明

由于该类model没有扩展任何其他类,因此create在隐藏该方法的地方我有些困惑。

Dev*_*von 5

Eloquent Model使用魔术方法(__call,__ callStatic)将调用传递给Eloquent Builder类。因此,Model :: create()实际上是将调用传递给Builder :: create()方法。

但是,如果您研究该方法,则它基本上与调用相同:

$model = new Model($attributes);
$model->save();
Run Code Online (Sandbox Code Playgroud)

(Query)Builder通过passmix的这种混合使您可以使用诸如 Model::where()