我有一個表items
和一個表item_pics
表。包含單個項目從相關表
item_pics
具有item_id
,file_name
和rank
字段(等等)。
我正在尋找是每個item
我index
頁的$items
陣列包含從item_pics
匹配item
的item_id
具有最低rank
的file_name
。所以,我可以像訪問(或東西等)這在我Items/index.ctp
:
foreach ($items as $item):
$img = $item['Item']['ItemPic']['file_name'];
...
我是很新,CakePHP的,這是我的第一個項目。我認爲這將Item
模型中會導致item_pics
數據被拉到(雖然我想通每個item
所有相關item_pics
會被拉進去,而不僅僅是一個具有最低rank
):
public $hasMany = array(
'ItemPic' => array(
'className' => 'ItemPic',
'foreignKey' => 'item_id',
'dependent' => false
)
}
但我可以看到沒有item_pics
數據被加載(在items/index
底部):
SELECT `Item`.`id`, `Item`.`title`, `Item`.`description`, `Item`.`created`, `Item`.`modified`, `Item`.`type`, `Project`.`id`, `Project`.`item_id`, `Project`.`title`, `Project`.`description`, `Project`.`rank`, `Project`.`created`, `Project`.`modified`
FROM `laurensabc`.`items` AS `Item`
LEFT JOIN `laurensabc`.`projects`
AS `Project`
ON (`Project`.`item_id` = `Item`.`id`)
WHERE `Item`.`type` IN (1, 2)
LIMIT 20
還,而我想projects
在view
頁面中加入了,我並不真的需要他們在index
頁面。
我已經做了一些搜索,一直沒能找到我正在尋找什麼。我想我可以在index
視圖項目循環中做一個查詢,但我試圖確保我以正確的方式執行... CakePHP方式。我想我需要改變一些關於我的模型關係的事情,但我沒有運氣。
CakePHP - Associations - HasMany,這使得它看起來像我可以通過職級和限制1.訂購但這並沒有工作...即使它沒有,我不希望這樣的影響view
頁面,而是隻index
頁面。
我的控制器看起來是這樣的:
public function index($type = null) {
$this->Item->recursive = 0;
$conditions = array();
if ($type == "sale") {
$conditions = array(
"Item.type" => array(self::FOR_SALE, self::FOR_SALE_OR_RENT)
);
} else if ($type == "rent") {
$conditions = array(
"Item.type" => array(self::FOR_RENT, self::FOR_SALE_OR_RENT)
);
} else {
$conditions = array("Item.type !=" => self::HIDDEN);
}
$paginated = $this->Paginator->paginate($conditions);
debug($paginated);
$this->set('items', $paginated);
$this->set('title', ($type == null ? "Items for Sale or Rent" : "Items for " . ucwords($type)));
}
我自己也嘗試這是我的控制器上,但它似乎並不要麼做任何事情:
我沒有查詢查詢,我會在哪裏放置? – smerny
哦,沒有看到。那麼你應該把它放在你的'$ this-> paginate'上,儘管我不是100%確定的,因爲'paginate'與find查詢不一樣,我也沒有太多地使用它。但無論如何嘗試。看看我的編輯。 – Eagle
似乎工作,雖然它在'$ item ['ItemPic'] [0] ['file_name']'。我將不得不更多關注這個「可容納的」功能......但同時,你知道使用它有什麼不利嗎? – smerny