나는 테이블 "사용자"와 컨트롤러 "users_controller.php" 과 "cateogry"라는 다른 테이블을 가지고 있는데,이 테이블의 값을 "listall"액션 (site.com/users/listall)에서 검색해야합니다.).cakephp : "users_controller.php"파일의 "cat"테이블에서 값을 가져 옵니까?
어떻게 다른 테이블에서 값을 가져올 수 있습니까?
나는 테이블 "사용자"와 컨트롤러 "users_controller.php" 과 "cateogry"라는 다른 테이블을 가지고 있는데,이 테이블의 값을 "listall"액션 (site.com/users/listall)에서 검색해야합니다.).cakephp : "users_controller.php"파일의 "cat"테이블에서 값을 가져 옵니까?
어떻게 다른 테이블에서 값을 가져올 수 있습니까?
사용자 및 카테고리 모델간에 hasMany 관계가 있다고 생각하십니까?
그러면 치명적입니다.
$this->User->find('first')->Category->find('all');
사용자와 관련된 모든 카테고리를 검색합니다. 당신에게 도움이 될 수
일부 자원 :
/models/user.php :
var $actsAs = array('Containable');
var $hasMany = array('Category');
/controllers/users_controller.php :
function listall()
{
$users = $this->User->find('all', array('contain' => array('Category')));
$this->set('users', $users);
}
/views/users/listall.ctp :
foreach($users as $user)
{
echo htmlspecialchars($user['User']['username']);
echo '<ul>';
foreach($user['User']['Category'] as $category)
{
echo '<li>';
echo htmlspecialchars($category['description']);
echo '</li>';
}
echo '</ul>';
}
는 $ 사용자 배열을 나타 내기 위해 디버그 기능을 사용
debug($users);
체크 아웃 함유 성 행동에 대한 설명서 :
f 준비 범주가에서 선택 요소
$categories = $this->User->Category->find('list'); $this->set(compact('categories'));
echo $form->input('User.category_id');
: 당신의 선택 요소를 추가 뷰 Cake는 Inflector의 덕분에 $categories
변수에 포함 된 값을 category_id
에 자동으로 사용합니다. 어떤 이유로 든 값이 다른 변수에 있으면
echo $form->input('User.category_id', array('options' => $values_array));
"cat"테이블의 값을 등록의 "선택"요소에 입력해야합니다. 가입 페이지 목록에 대해 모든 국가가 국가 표 양식 – coderex
'-> find ('first') -> Category'가 이상하게 보일 때 'User-> Category'를 의미하지 않습니까? – deceze