2017-04-13 64 views
0

我有一個懶惰加載belongsToMany關係的現有模型就好了。Laravel 5.4現在正在加載belongsToMany Relationship null綁定

我的問題是,當我嘗試加載關係時,我得到一個空的結果

當我檢查查詢時,它顯示關係查詢的綁定爲null。

這是我(簡化)代碼:

// Controller 
public function filter(Request $request, App\Programs $program) 
{ 
    $program = $program->newQuery(); 

    $program->select(
      'slug', 
      'title', 
      'season' 
    ); 

    $program->with([ 
     'sports' 
    ]); 
    return $program->get(); 
} 

// Model 
class Programs extends Model 
{ 
    public function sports(){ 
     return $this->belongsToMany('App\Sport', 'program_sport', 'program_id', 'sport_id'); 
    } 

} 

回答

1

的問題是,你不拿id從數據庫,以便雄辯無法獲得相關的模型。相反的:

$program->select(
      'slug', 
      'title', 
      'season' 
    ); 

你應該使用:

$program->select(
      'id', 
      'slug', 
      'title', 
      'season' 
    ); 

要知道但是你可以用更簡單的語法(並在控制器這樣不注射模型):

return Program::select('id','slug', 'title', 'season')->with('sports')->get(); 

而且我不知道你爲什麼在這種情況下使用路線模型綁定

+0

不是很奇怪,但我會吻你,如果我可以。我很放心。 XD – Mdalz

+0

此外,這回答我的問題。 – Mdalz