2011-01-04 4 views
0

많은 검색을했으나 아직 해결할 수 없었습니다. 나는 사용자 등록 양식을 가지고 있는데, 여기서 사용자는 등록 할 때 수 많은 상점 가지를 즐겨 찾기로 선택할 수 있습니다. 나는이 관계를 HABTM으로 설정했습니다.CakePHP : 여러 확인란의 라벨을 어떻게 사용자 정의 할 수 있습니까?

저장소 분기를 여러 개의 확인란으로 표시 할 수 있지만 각 확인란의 레이블에 분기 이름과 함께 저장소 이름 (저장소 이름은 저장소 이름에 속함)을 표시해야합니다. 뭔가 같은 :

리바이스 - 운하 워크

운하 도보 분기 이름이고, 리바이스는 (다른 테이블에서 오는) 상점 이름

사람이 수행하는 방법에 대한 몇 가지 통찰력을 공유하시기 바랍니다 수 있습니다

이?

답변

0

나는이 테스트를하지 않은,하지만 작동 (또는 오른쪽으로 길을 따라 당신을 도울 수) 있습니다

$branches = $this->Branch->find('list', array(
    'fields' => array('Branch.id', 'CONCAT(Store.name, " - ", Branch.name)'), 
    'joins' => array(
     array(
      'table' => 'stores', 
      'alias' => 'Store', 
      'type' => 'inner', 
      'foreignKey' => false, 
      'conditions' => array('Branch.store_id' => 'Store.id') 
     ) 
    ) 
)); 

는 컨트롤러에서이 설정, 또는 귀하의 모델을 배치하여 건조하게 유지 findFullList()와 같은 기능

도움이되는 희망!

0

저는이 모든 것을보기에 할 것입니다. 귀하의 HABTM 관계가 올바르게 설정하면 스토어 모델의 쿼리는 다음과 같이 작동합니다 :

$stores = $this->Store->findAll(); 
//Returns 
Array([0] => Array(
    'Store' => array(), 
    'Branch' => array(
     [0] => array(), 
     [1] => array()...)); 

그런 다음보기에 변수 $ 저장을 전달하고 이중 중첩 루프로 반복.

foreach($stores as $store){ 
     foreach($store['Branch'] as $branch){ 
      //Code to output checkbox by using $branch['name'] 
     } 
    } 
관련 문제