CakePHP插件模型关联不起作用
场景:我有一个CakePHP应用程序,带有一个名为Fruit的插件。水果插件包含指向TagsController.php的路径,带有指向index.ctp的index操作 标记模型有一个关联。用户id 问题是:即使我在Model->find('all')中添加了一个joins选项,['User']索引也没有定义。我不知道该怎么做,这是我的代码 标记控制器CakePHP插件模型关联不起作用,cakephp,cakephp-2.0,cakephp-2.1,cakephp-2.2,Cakephp,Cakephp 2.0,Cakephp 2.1,Cakephp 2.2,场景:我有一个CakePHP应用程序,带有一个名为Fruit的插件。水果插件包含指向TagsController.php的路径,带有指向index.ctp的index操作 标记模型有一个关联。用户id 问题是:即使我在Model->find('all')中添加了一个joins选项,['User']索引也没有定义。我不知道该怎么做,这是我的代码 标记控制器 public function index($ajax = false) { $this->Tag->recursive
public function index($ajax = false) {
$this->Tag->recursive = 2;
$tags = $this->Tag->find('all', array('conditions' => array('User.id' => $this->Auth->user('id')), 'joins'=>array(
array(
'table'=>'users',
'alias'=>'User',
'conditions'=>array(
'User.id=Tag.user_id'
)
),
)));
print_r($tags);
$this->set('tags', $this->paginate());
if($ajax == 'ajax')
{
$this->layout = 'ajax';
}
}
标签模型
App::uses('FruitAppModel', 'Fruit.Model');
class Tag extends FruitAppModel {
public $name = 'Tag';
public $uses = array('User');
public $belongsTo = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
用户模型
App::uses('AppModel', 'Model');
class User extends AppModel {
public $name = 'User';
public $displayField = 'username';
public $hasMany = array(
'Tag' => array(
'className' => 'Fruit.Tag',
'foreignKey' => 'tag_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
),
);
我已经在这个问题上纠缠了好几个小时了,所以任何关于我可以尝试的新想法都非常感谢。我已经很好地梳理了stackoverflow,我只是在兜圈子,我需要一双新的眼睛来关注这个问题。任何想法都会很棒
谢谢大家!
- 杰夫
public $hasMany = array(
'Tag' => array(
'className' => 'Fruit.Tag',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
),
在控制器中:--
如果我想将插件中的模型与属于“核心”模型的模型相关联,那么反过来又如何呢?
$this->Tag->recursive = 1;
$this->paginate = array(
'conditions' => array('Tag.user_id' => $this->Auth->user('id'))
);
$data = $this->paginate('Tag');
pr($data);
$this->set(compact('data'));