我在CakePHP 3.2中工作。有一个表user_addresses
我正在尝试从中获取用户的所有记录
public function myFun()
{
$this->loadModel('UserAddresses');
$user_id = $this->Auth->user('id');
$userAddresses = $this->UserAddresses->find('all', [
'conditions' => [
'user_id' => $user_id
]
]);
if (empty($userAddresses)) {
echo 'Hello'; // for testing only
} else {
echo 'World';
}
}
为了检查它,我在控制器的beforeFilter
中添加了myFun
$this->Auth->allow(['myFun']);
这将打印 World 而不是 Hello,因为没有从数据库中检索到的数据,因为如果用户未登录,那么$user_id
必须为空。
首先检查$user_id
是否可用,然后调用find()
方法。
public function myFun()
{
$this->loadModel('UserAddresses');
$user_id = $this->Auth->user('id');
if(empty($user_id)){
echo "Not able to access this method";
die();
}
$userAddresses = $this->UserAddresses->find('all', [
'conditions' => [
'user_id' => $user_id
]
]);
if (empty($userAddresses)) {
echo 'Hello'; // for testing only
} else {
echo 'World';
}
}