2014-02-12 40 views
0

這裏是我的查詢:使用中選擇列 '與()'

return $this->mGalleries->with(array('pictures' => function($query){ 
     $query->wherePublished(1)->orderBy('sort'); 
    }))->whereInUse(1)->wherePublished(1)->orderBy('date')->get(array('id', 'title'))->toArray(); 

I have looked at a question here但沒有運氣。

我已經嘗試了建議:

$query->select('title')->wherePublished(1)->orderBy('sort'); 

但所有字段的不斷問世,雖然標題確實出現第一當我這樣做。

有關如何解決此問題的任何想法?

+0

問題是什麼?你只是說你已經嘗試了建議和字段不斷出來,以及如何解決它,但你不要問清楚的問題 –

+0

'$ query-> select('title') - > wherePublished(1) - > orderBy('sort');'wotk但是'id /主鍵'必須在選擇列表中。 –

回答

0

你只需要使用的一些列返回,如果我正確地理解你的問題設置..

我從來沒有使用select上口若懸河的模型,因爲使用不當會破壞必要的列模型之間的關係(IE picture_id都需要找到圖片)。所以這會使查詢的結果產生誤導。

爲什麼不使用這樣的:

// $galleries = Galleries->with.... 
$galleries = Gallery::with(array('pictures' => function($query){ 
     $query->wherePublished(1)->orderBy('sort'); 
}))->whereInUse(1) 
    ->wherePublished(1) 
    ->orderBy('date') 
    ->get() 
    ->toArray(); 

然後當你需要例如標題的第一個: $falleries[0]['title']

如果要隱藏toArray()函數的特定屬性,可以在您的口才模型中添加protected $hidden = array('field/attr', ..);屬性。