2014-10-23 1 views
0

Models: User, Product, 둘다 ActAs Containable. User->find('all')cakePHP가 포함 가능한 동작에서 결과의 단일 배열을 찾는 방법은 무엇입니까?

User hasMany Produc톤 및 Prodct BelongsTo User

결과 :

array(
    (int) 0 => array(
     'User' => array(
      'id' => '1', 
      'name' => 'Paul' 
     ), 
     'Product' => array(
      (int) 0 => array(
       'id' => '7', 
       'user_id' => '1', 
       'price' => '100' 
       ), 
      (int) 1 => array(
        'id' => '9', 
        'user_id' => '1', 
        'price' => '10' 
        ) 
      ), 
(int) 1 => array(
     'User' => array(
      'id' => '2' 
      'name' => 'Susan' 
     ), 
     'Product' => array(
      (int) 0 => array(
       'id' => '8', 
       'user_id' => '2', 
       'price' => '22' 
      ), 
      (int) 1 => array(
        'id' => '10', 
        'user_id' => '2', 
        'price' => '15' 
        ) 
    ) 
); 
내가 (사용자 주문의 독립) price ASC에 의해에만 Products, 순서를 표시 할

,하지만 난에 대한 몇 가지 User 정보가 필요합니다 내 견해.

예 : 보기의 :

"ID와 제품 = 9 바울에 속하고 10 비용"
"10 수잔에 속하는 = ID와 제품을 15 비용"
"8 수잔에 속하는 = ID와 제품을 22 비용"
는 "ID = 7 Prodcut 폴에 속하고 100

+0

제품 만 표시하려는 경우 사용자 모델에서 찾기 기능을 실행하는 이유는 무엇입니까? Product 모델에서'find'를 실행 해 보셨습니까? 그렇지 않으면 배열을 조작하려면 [해시 클래스] (http://book.cakephp.org/2.0/ko/core-utility-libraries/hash.html) – AgRizzo

+0

@AgRizzo에서 읽어야합니다. if 제품 모델에서'find'를 실행하십시오. 어떻게하면 내 뷰/사용자 정보를 인쇄 할 수 있습니까? – user1148875

+0

질문을 이해할 수 없습니다. 현재 사용자 모델에서 '찾기'를 실행하고 제품 정보를 얻고 있습니다. 왜 제품에서 '찾기'를 실행해도 사용자 정보가 반환되지 않는다고 생각하십니까? 모델 연결을 양방향으로 설정합니다. Product 모델에서'find'를 실행하고, 결과를보고 요구 사항을 충족하는지 확인해야합니다. – AgRizzo

답변

0

솔루션 false-contain을 넣어 사용자 정의를 생성 된 비용은 가입 :

return $this->Product->find('all', array(
    'contain' => false, 
    'joins' => array (
     array (
     'table' => 'users', 
     'alias' => 'User', 
     'type' => 'INNER', 
     'conditions' => array (
      'User.id = Product.user_id' 
     ) 
    ) 
    ), 
    'fields' => array('User.*', 'Product.*'), 
    'order' => 'Product.year ASC'   
    )); 

하지만, 메신저 더 나은 aproach가 있는지 궁금! 내가 잘에 BelongsTo을 $ hasMany의를 가지고와 $ 원인 내가 이해 didnt한다 "사용자 모델은 제품 모델에 연결되지 않은"occurr

modelProduct에서 나는 contain => 배열 ('사용자')하지만 오류가 시도했습니다 한정된.

+0

제품 모델의 $ belongsTo 코드를 공유하십시오. – AgRizzo

+0

'public $ actsAs = array ('Containable'); public $ BelongsTo = array ('User'); ' – user1148875

+1

변수 이름은 대소 문자를 구분합니다. '$ belongsTo' _ (소문자 "b"에 주목하십시오) _ – AgRizzo

관련 문제