谢谢,看到我有这个问题,我想检查我的(我的用户)的id是否存在于另一个表中,如果这不存在重定向到我的添加。
表1
| id |
|用户名|
|密码|
|创作|
|类型|
表2
| id |
| id_user |
|不能|
| medaza |
| cachaza |
我不想使用hasone,因为不是这种情况。
我想比较id == id_user存在一个会话。 控制器
class IngeniosController extends AppController
{
public function add()
{
}
public function index()
{
$this->loadModel('Ingenio');
$conditions = array(
'conditions' => array(
'UserAzucar.id_user' => $this->Session->read('User.id')
)
);
$result = $this->User->find('first', $conditions);
if (isset($result['User'])){
$this->redirect(array('action' => 'add'));
}
}
public function delete()
{
}
}
模型
<?php
/**
*
*/
class Ingenio extends AppModel
{
public $name = 'UserAzucar';
public $useTable = 'usuarios_azucar';
public $primaryKey = 'id_azucarusuario';
}
?>
答案 0 :(得分:1)
只需使用以下代码替换控制器
class IngeniosController extends AppController {
public function add()
{
}
public function index(){
$this->loadModel('User');
$result_count = $this->User->find('count', array(
'joins' => array(
array(
'table' => 'user_azucar',
'alias' => 'UserAzucar',
'type' => 'RIGHT',
'conditions' => array(
'UserAzucar.id_user = User.id'
)
)
),
'conditions' => array(
'UserAzucar.id_user' => $this->Session->read('User.id')
)
));
if(!$result_count){
$this->redirect(array('action' => 'add'));
}
}
public function delete()
{
}
}
答案 1 :(得分:0)
table2是user_azucar
还是usuarios_azucar
?
为什么模型名称与$name
属性不同?
您对姓名使用了奇怪的约定(为什么不遵循蛋糕惯例?)
但如果我了解您的架构,那么您必须这样做:
$conditions = array(
'conditions' => array(
'id_user' => $this->Session->read('User.id')
)
);
$result = $this->Ingenio->find('first', $conditions);
if (empty($result)){
$this->redirect(array('action' => 'add'));
}
答案 2 :(得分:0)
在appController和IngeniosController
中执行此操作public $components = array('Session','RequestHandler');
调试您的SESSION以确定它是否为空
var_dump($this->Session->read('User.id'));
您的控制器:
public function index()
{
$this->loadModel('UserAzucar');
$conditions = array(
'conditions' => array(
'id_user' => $this->Session->read('User.id')
)
);
$this->UserAzucar->recursive = -1;
$result = $this->UserAzucar->find('first', $conditions);
if (empty($result)){
return $this->redirect(array('action' => 'add'));
}
}