【发布时间】:2014-03-10 23:47:32
【问题描述】:
我正在使用 cakephp 2.xx。我的数据库名称和性别中有两个表。我写 innerjoin 以显示带有性别的名称。性别来自性别表。我的控制器在下面
class NamesController extends AppController {
public $helpers = array("Html", "Form");
public function index() {
$this->loadModel("names");
$query_options = array();
$query_options["fields"] = array("names.Name","genders.gender");
$query_options["joins"] = array("table" => "genders", "alias" => "genders", "type" => "INNER", "conditions" => array("genders.id = names.Gender_id",));
$this->set("gender", $this->names->find('all', array($query_options,'limit' => 10 ,'recursive' => 1)));
}
}
命名模型是
class Names extends AppModel {
var $belongsTo = 'Genders';
}
性别模型是
class Genders extends AppModel {
var $hasMany = 'Names';
}
和ctp代码是
foreach ($gender as $post);
echo $post["names"]["Name"];
echo $post["genders"]["gender"];
这个打印名字很好。但不打印性别并导致未定义索引:性别。请帮忙
【问题讨论】:
-
如果您需要子表条件,请使用连接。使用 contains 检索子表数据。需要时同时使用。 :)
-
我使用连接并单独包含但结果相同
-
检查我的答案是否适合你。