首先我要说的是,我已尽可能多地阅读CakePHP书籍,因为无论出于何种原因,我都无法理解这一点。
我有几个型号:
人
起初我依赖递归,但它不够自定义(显然)可以获得我想要的数据。
我要么在输出数组中得到太多的数据,要么几乎没有任何数据......我只是无法想象这可以包含,如果我能看到我想要做的一个例子那就是大...
由于
答案 0 :(得分:1)
既然你上下阅读了Cookbook,我将不会详细介绍你的所有基本细节,只是尝试解释如何使用可包含的。
您可以使用包含模型中find
- 函数的可包含函数。可以从您的控制器或直接从您的模型
大多数时候我使用控制器,所以我会给你一个例子,你将如何从那里做到。我也尝试使用您的具体示例,因此您可以使用。
/app/controllers/people_controller.php
function index() {
//I like to write a separate array for fields and contain
$fields = array(
'name',
'birthday',
'gender'
);
/* It's important to know, that the fields will not get included into the
* contain-array unless it's an associated model! */
$contain = array(
'Job' => array(
//within another array you define the next level of contain
'Branch' => array(
//you get the deal...
'City'
),
//if you only need specific fields you can define this here like this:
'fields' => array('title', 'date', 'salary'),
//or order them directly!
'order' => 'Job.salary DESC'
)
);
//we now to our find-fall with our 2 arrays for the fields and the contain
//every option (like fields or order) can be used in the containable
$people = $this->Person->find('all', array('contain' => $contain, 'fields' => $fields));
}
我希望这有助于你理解可以包含更多内容。