我注意到,在web.php
中,我能够访问Listing
模型的find()
(我创建的)
Route::get('listings/{id}',function($id){
return view('listing',[
'listing'=>Listing::find($id)
]); });
字符串
当我检查Listing
模型时,我发现它扩展了Illuminate\Database\Eloquent\Model
类。但是我找不到find()
。在进一步的检查中,我发现上面提到的find()
是Illuminate\Database\Eloquent\Builder
类的一部分。问题是,我的Listing
模型如何能够访问Illuminate\Database\Eloquent\Builder
,或者它是否通过Illuminate\Database\Eloquent\Model
发生,如果是,如何?
2条答案
按热度按时间t40tm48m1#
Laravel使用一些“魔法”的方式来做这样的事情。你可以通过在find方法中强制一个Exception来看到它的方式,如下所示:
字符串
这将显示代码的路径
它看起来像这样:
型
hpxqektj2#
如果您想查看所有查询生成器方法都使用查询方法。下面是一个示例,如果您有一个用户模型,并希望通过id查找用户
字符串
对我来说,我的代码编辑器是Php storm,当我单击find方法时,它会将我转发到Builder类
型
您将获得该类中的所有数据库查询生成器方法