我正在用CakePHP制作一个PHP论坛我很烦恼获取所有成员的数组然后在视图中回显它们,下面是我的代码。CakePHP模型“成员”与模型“成员”没有关联
<?php
App::uses('AppModel', 'Model');
class Member extends AppModel {
public $validate = array(
'username' => array(
'notEmpty' => array(
'rule' => array('notEmpty')
),
),
'password' => array(
'notEmpty' => array(
'rule' => array('notEmpty')
),
),
'email' => array(
'email' => array(
'rule' => array('email')
),
),
);
public $hasMany = array(
'Post' => array(
'className' => 'Post',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
),
'Topic' => array(
'className' => 'Topic',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}
这就是我在这里的成员模型是我MembersController
<?php
App::uses('Controller', 'AppController');
class MembersController extends AppController {
public $components = array('Paginator');
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('profile','login');
}
public function index(){
$this->Paginator->settings['contain'] = array('Member');
$this->set('members', $this->Paginator->paginate());
}
public function profile($id=null) {}
public function login() {
if($this->request->is('post')) {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('Invalid username or password'));
}
}
}
public function logout() {
$this->redirect($this->Auth->logout());
}
}
这里是我的索引视图
<div class="row">
<?php foreach ($members as $member): ?>
<?php echo $user[name]; ?>
<?php endforeach; ?>
</div>
当我访问example.com/members我得到一个错误说型号“成员”与模型“成员”没有关联[CORE/Cake/Model/Behavior/ContainableBehavior.php,line 342]
个你问之前,我已经取得AppModels ACTAS中可容纳
class AppModel extends Model {
public $actsAs = array('Containable');
}
有了burzum的大量帮助,我已经修复了它,并且我还发现,不管你称之为控制器,只要添加公共$ uses = array(' Model1','Model2','Model3');在控制器的顶部 – user2710382
而不是将许多模型加载到控制器中(即使它们被延迟加载),最好通过该控制器的主模型的关联来访问其他模型。 – burzum