시나리오 :CakePHP는 - HABTM - 뷰에 여러 테이블에서 데이터를 전송
3 tables:
restaurants
cuisines
features
2 join tables:
cuisines_restaurants
features_restaurants
질문 :
무엇 내 컨트롤러에서 단일 레스토랑에 대한 데이터를 얻을 수있는 가장 좋은 방법은 레스토랑 데이터뿐만 아니라 요리 및 특징을 포함하는보기.
$restaurant = $this->Restaurant->find('all', array('conditions' => array('Restaurant.id' => $id)));
$this->set('restaurant', $restaurant);
그리고이 같은 뷰에 전화 해요 : :
나는이 작업 한
echo "<span class='label'>Name:</span> " . $restaurant[0]['Restaurant']['name'] . "<br />";
echo "<span class='label'>Cuisine:</span> ";
$cuisineList = "";
foreach($restaurant[0]['Cuisine'] as $cuisine) {
$cuisineList .= $cuisine['name'] . ", ";
}
echo substr($cuisineList,0,-2) . "<br />";
(및 기능에 대한 반복)
을하지만이 보인다 내가보기에 모든 Cake 튜토리얼에서 컨트롤러의 뷰 메소드는 다음과 같습니다.
$this->set('restaurant', $this->Restaurant->read(null, $id));
그런 다음 그들은 다음과 같이 호출 :
echo $restaurant['Restaurant']['name'];
...etc
를 다시 - 그것은 작동하고 - 난 그냥 더 좋은 방법이 있는지 알고 싶다 - 나는 현재는 비교 정치 못한 것 같다하고 있어요 방식으로 모든 다른 매끄러운 것 케이크는 나를 위해 도움이된다! :)
모델에 재귀 세트가 있습니까? 재귀를 최대 2로 설정하면 거대한 데이터 세트를 다시 얻어야합니다. Containable을 살펴보면 데이터 세트를 줄이는 데 도움이됩니다. 내 머리 꼭대기에서, 당신이하는 일은 모든 데이터를 반환해야합니다. –