Php 关系的问题有很多方面

Php 关系的问题有很多方面,php,laravel,eloquent-relationship,Php,Laravel,Eloquent Relationship,我有一个亲戚,他有很多,但在我的控制器上不起作用 代码季节模型: public function retro () { return $this->hasMany('App\Models\Retrocession','season_id'); } 代码控制器: $hotelagencie = HotelAgency::find($id) ; $hotel = $hotelagencie->hotel; $season = $hotel->seasons

我有一个亲戚,他有很多,但在我的控制器上不起作用

代码季节模型:

public function retro () {
    return $this->hasMany('App\Models\Retrocession','season_id');
}
代码控制器:

$hotelagencie = HotelAgency::find($id) ;
    $hotel = $hotelagencie->hotel;
    $season = $hotel->seasons;
    return  $season->retro
Ereur:此集合实例上不存在属性[retro]


Thxyou.

我们确认了您的需求从所有季节中选择所有复古,因此我想我可以给您一个答案:

这就是你得到的:

$hotelagencie = HotelAgency::find($id) ;
    $hotel = $hotelagencie->hotel;
    $season = $hotel->seasons;
    return  $season->retro
这就是我认为需要的:

$hotelagencie = HotelAgency::find($id) ;
    $hotel = $hotelagencie->hotel;
    $seasons = $hotel->seasons;
    return $seasons->pluck('retro');
有关什么是Pulk以及如何使用它的更多信息,请参阅官方文档:


我希望有帮助

我们确认了您想要什么从所有季节中选择所有复古,因此我想我可以给您一个答案:

这就是你得到的:

$hotelagencie = HotelAgency::find($id) ;
    $hotel = $hotelagencie->hotel;
    $season = $hotel->seasons;
    return  $season->retro
这就是我认为需要的:

$hotelagencie = HotelAgency::find($id) ;
    $hotel = $hotelagencie->hotel;
    $seasons = $hotel->seasons;
    return $seasons->pluck('retro');
有关什么是Pulk以及如何使用它的更多信息,请参阅官方文档:


我希望有帮助

四季看起来像收藏。尝试$hotel->seasons->first->retroit工作,但此返回仅为第一行,我有我我有很多行您必须执行foreach循环以获得多个结果我尝试此foreach$seasons作为$ret{return$ret->retros;}但我仍然只得到数据库中有两行的第一行,但我仍然只得到第一行one@Nablialaa我想我理解你的问题$hotel->seasons是一个集合,因为它有许多结果,但您将其放入名为$season的变量中。这使它令人困惑,因为它不是一个季节,而是整个季节的集合。一个季节有一个功能/关系复古。一个集合不需要。这就是为什么$hotel->seasons->first->retro起作用的原因。您正在选择所有季节中的第一个。观察后的真正问题是:你想要实现什么?是否要返回所选内容的所有转分保?四季看起来像收藏。尝试$hotel->seasons->first->retroit工作,但此返回仅为第一行,我有我我有很多行您必须执行foreach循环以获得多个结果我尝试此foreach$seasons作为$ret{return$ret->retros;}但我仍然只得到数据库中有两行的第一行,但我仍然只得到第一行one@Nablialaa我想我理解你的问题$hotel->seasons是一个集合,因为它有许多结果,但您将其放入名为$season的变量中。这使它令人困惑,因为它不是一个季节,而是整个季节的集合。一个季节有一个功能/关系复古。一个集合不需要。这就是为什么$hotel->seasons->first->retro起作用的原因。您正在选择所有季节中的第一个。观察后的真正问题是:你想要实现什么?是否要返回找到的所有转分保?