我尝试使用CakePhp,但我找不到解决方案。这是我的问题:
我有两个模型蚂蚁我尝试链接它。 第一个是Player(mysql表是玩家)
第二个是Toto(mysql表是totos) 我有一个叫做toto_id
的球员在我的模型玩家中我写道:
<?php
class Player extends AppModel {
public $validate = array(
'name' => array(
'rule' => 'notEmpty'
)
);
public $hasOne = 'Toto';
}
在我的控制器PlayersController中
class PlayersController extends AppController {
public $helpers = array('Html', 'Form', 'Session');
public $components = array('Session');
public function index() {
$params = array(
'order' => array("Player.firstname")
);
$a = $this->Player->find('all', $params);
print_r($a);
$this->set('liste', $a);
}
}
我的print_r显示
Array
(
[0] => Array
(
[Player] => Array
(
[id] => 2
[name] => DESMAISON
[firstname] => Christophe
[is_intern] => 1
[score] => 663
[created] => 2014-01-05
[modified] => 0000-00-00 00:00:00
[toto_id] => 2
)
)
[1] => Array
(
[Player] => Array
(
[id] => 10
[name] => CHARLERY
[firstname] => Daphné
[is_intern] => 1
[score] => 572
[created] => 2014-01-04
[modified] => 0000-00-00 00:00:00
[toto_id] => 0
)
)
我不明白为什么在我的数组中我没有提到Toto。有人可以帮帮我吗?
感谢您的帮助
Ps:我使用cakephp 2.4.4 PHP 5.4.7
答案 0 :(得分:0)
我认为这是BelongsTo Association。
而不是HasOne关联尝试使用BelongsTo,
类Invoice扩展了AppModel {
public $belongsTo = array(
'Toto' => array(
'className' => 'Toto',
'foreignKey' => 'toto_id'
),
);
如果你想从数据库中检索数据,你必须设置你的递归,首先有两种方法:
$players = $this->Player->find('all',array('recursive'=>2));
// or
$this->Player->recursive = 2;
$player = $this->Player->find('all');