Gallery.php:如何在不在Laravel中創建新的數據庫請求的情況下獲得belongsTo模型?
<?php
class Gallery extends Eloquent {
protected $visible = array(
'title',
'slug',
'id'
);
public function coverImage() {
return $this->belongsTo('Image', 'cover_image_id');
}
}
Image.php:
<?php
class Image extends Eloquent {
protected $visible = array(
'id',
'url'
);
protected $appends = array(
'url'
);
public function gallery() {
return $this->hasOne('Gallery', 'cover_image_id');
}
public function getUrlAttribute() {
$slug = $this->gallery->slug;
return '/images/' . $slug . '/' . $slug . '-' . $this->id . '.jpg';
}
}
我要的是:
return Response::json(Gallery::all()->with('coverImage')->get());
我要每個coverImage
有url
屬性。它有......但是Laravel正在查詢每個畫廊的數據庫以獲得其slug
,儘管由於with()
方法而具有畫廊。
如何避免它?
只是一個想法,但不應類畫廊或圖像的一個有hasOne相對於其他的,而不是他們兩個都有屬於? – Adimeus 2014-09-25 13:45:14
@Adimeus你說得對。我編輯了我的問題。不幸的是,這並不能解決問題。我從「畫廊」中選擇*,其中對於每個「畫廊」,畫廊'.' cover_image_id' =?limit 1「。 – Craft 2014-09-25 14:00:16