Product 클래스에 $ has_many 관계가있는 Product 클래스가 있습니다. Product_faq 클래스에 $ has_many 관계가있는 Product 클래스가 있습니다. 이 두 클래스는 product_faqs_products 테이블을 사용하여 조인됩니다.CodeIgniter DataMapper 관련 객체 배열
모든 Product_faq 객체를 배열로 가져 오려고합니다. 각 Product_faq와 관련된 Product 객체의 배열을 포함하는 각 "product"속성을 포함하여 배열로 가져 오려고합니다. 여기에 내가 지금하고 있어요 방법은 다음과 같습니다
$faqs = new Product_faq();
$faqs->where('deleted', 0)->get();
$data['faqs'] = array();
foreach($faqs as $faq){
$faq_array = $faq->to_array();
$products = new Product();
$faq_array['product'] = $products->where_related($faq)->where_join_field($faq, 'deleted', 0)->get()->all_to_array();
$data['faqs'][] = $faq_array;
}
print_r($data['faqs']);
아마 할 수있는 더 좋은 방법이 기분이 사용 DataMapper의 기능 내장,하지만 난 그것을 알아낼 수 없습니다. 누구든지이 작업을 수행하는보다 효율적인 방법을 알고 있습니까?
감사 jonixj
이것은 아마 내가 그것을 할 것이 방법입니다. 알 수있는 한, 필드가 전달되지 않은'all_to_array()'에는 관련된 모델이 포함되어 있지 않습니다. 상위 모델의 데이터베이스 필드 만 포함합니다. 그렇지 않으면 봤어? 나는 네가 테이블 이름에 대해 틀렸다는 것을 믿는다. 표준 조인 테이블 이름은 클래스의 복수 버전의 조합이어야합니다. 제 경우에는 올바른 것이 product_faqs_products입니다. – flyingL123