Php Laravel-通过值雄辩地获取子模型
我和模特有关系Php Laravel-通过值雄辩地获取子模型,php,laravel,eloquent,Php,Laravel,Eloquent,我和模特有关系 class ModelOne extends Model { public function modelsTwo() { return $this->hasMany(ModelTwo::class, 'modeltwo_id'); } } 是否可以基于ModelTwo的属性从ModelOne检索ModelTwo 比如说: $mone = ModelOne::find($id); $mtwo = $mone->modelsTwo->
class ModelOne extends Model
{
public function modelsTwo() {
return $this->hasMany(ModelTwo::class, 'modeltwo_id');
}
}
是否可以基于ModelTwo的属性从ModelOne检索ModelTwo
比如说:
$mone = ModelOne::find($id);
$mtwo = $mone->modelsTwo->findByName('foo');
因此$mtwo将拥有ModelOne中名为“foo”的ModelTwo是的,如果您将其作为属性调用,
$mone->modelsTwo
它将返回所有ModelTwo
记录作为集合
,如果您将其作为函数调用,$mone->modelsTwo()
它将返回一个查询生成器,两者都有where()
可用于按特定名称查找记录的函数
$mone = ModelOne::find($id);
$mtwo = $mode->modelsTwo->where('name', 'foo')->first();
// or
$mtwo = $mode->modelsTwo()->whereName('foo')->first();
如果您想提取所有记录,只需将其作为属性调用,但如果您想执行复杂查询,则将其作为函数调用。是的,如果您将其作为属性调用
$mone->modelsTwo
它将返回所有ModelTwo
记录作为集合,如果您将其作为函数调用$mone->modelsTwo()
它将返回一个查询生成器,两者都具有where()
函数,您可以使用该函数按特定名称查找记录
$mone = ModelOne::find($id);
$mtwo = $mode->modelsTwo->where('name', 'foo')->first();
// or
$mtwo = $mode->modelsTwo()->whereName('foo')->first();
如果要提取所有记录,只需将其作为属性调用,但如果要进行复杂查询,请将其作为函数调用。谢谢,这正是我要查找的!有点晚了,但是如果你想在一个有很多模型的模型中找到更深的东西,结果会怎样呢?谢谢你,这正是我想要的!有点晚了,但是如果你想在一个有很多模型的模型中找到一些东西,结果会怎样呢?