我遇到了Laravel的一个问题,在我的一生中我无法解决这个问题。
我有以下型号,基本上是:
class Team extends Model
{
public function notices()
{
return $this->belongsToMany('App\Notice', 'notice_recipients');
}
}
class Notice extends Model
{
public function teams()
{
return $this->belongsToMany('App\Team', 'notice_recipients');
}
}
我遇到了Team模型的问题:
dump($this->notices);
将不同的结果返回到:
dump(Team::find($this->id)->notices);
为了进一步调查,我有以下代码:
dump($this->id); // = 20
dump($this->notices()->toSql());
dump($this->notices()->getBindings());
dump($this->notices);
dump(Team::find($this->id)->notices()->toSql());
dump(Team::find($this->id)->notices()->getBindings());
dump(Team::find($this->id)->notices);
2-3行输出完全相同,据我所知为5-6行,所以我应该得到相同的结果,但是第4行和第7行输出不同的结果! (第4行似乎只输出第7行输出的结果选择。)
这个问题似乎只发生在某些团队模型上,而且在任何特定模型上是否出现问题似乎都是随机的。
有关可能发生的事情或如何进一步调试此问题的任何想法?
非常感谢
答案 0 :(得分:0)
notice_recipients表,如果包含以下字段
id team_id notice_id
尝试这个也许会起作用
public function notices()
{
return $this->belongsToMany('App\Notice', 'notice_recipients', 'team_id', notice_id);
}
public function teams()
{
return $this->belongsToMany('App\Team', 'notice_recipients', 'notice_id', 'team_id');
}