2014-02-13 75 views
0

我在DesignsController下面的代碼:雄辯建築返回的結果太多

public function show($id) 
{ 
    return Design::find($id)->with('variables')->get(); 
} 

當我拿到/設計/ 1,我應該回去只是ID = 1的設計JSON,但我回來所有當前的設計。

在設計模式:

/* Define relationship between designs and variables */ 
public function variables() 
{ 
    return $this->hasMany('Variable'); 
} 

的routes.php文件:

Route::resource('designs', 'DesignsController'); 

我在做什麼錯在這裏?

編輯:多一點信息。只要我點擊一個實際設計的ID,我就可以得到所有結果,所以它似乎根據ID找到了結果,但是返回了所有結果。

如果我刪除->with('variables')->get();然後這工作,但我也需要變量。下面是設計模型:

class Design extends Eloquent { 

    /* Define relationship between designs and variables */ 
    public function variables() 
    { 
     return $this->hasMany('Variable'); 
    } 

     /* Define relationship between designs and variables */ 
    public function user() 
    { 
     return $this->belongsTo('User'); 
    } 
} 

變量模型:

class Variable extends Eloquent { 
public $timestamps = false; 
} 
+0

包含的變量模型。問題可能在那裏。 – TonyArra

+0

這裏沒有太多內容,但我已經編輯過該文章以包含它。 – babbaggeii

回答

1

你做你 「與」 語句錯誤:

渴望負荷:

public function show($id) 
{ 
    return Design::with('variables')->find($id); 
} 

其實我認爲你的問題是在find()之後調用get(),因爲find已經返回一個模型。查找應在您構建的查詢結束時調用,因爲它本質上調用了get()。

懶急於選擇:如果你能

public function show($id) 
{ 
    return Design::find($id)->load('variables'); 
} 
+0

啊,太棒了。謝謝。 – babbaggeii

+0

@babbaggeii哦做了一個更正回答,問題是真的先調用find()。 – TonyArra