CakePHP 3:returns 即使数据未从数据库中获取也是如此
CakePHP 3 : returns true even if data is not fetched from database
我正在使用 CakePHP 3.2。有一个 table 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';
}
}
为了检查它,我将 myFun
添加到控制器的 beforeFilter
$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';
}
}
我正在使用 CakePHP 3.2。有一个 table 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';
}
}
为了检查它,我将 myFun
添加到控制器的 beforeFilter
$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';
}
}