CakePHP 3:即使未从数据库中提取数据,也会返回true

I'm working in CakePHP 3.2. There is a table user_addresses from which I'm trying to fetch all records of an user

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';
    }
}

To check it, I added myFun to controller's beforeFilter

$this->Auth->allow(['myFun']);

and this prints World instead of Hello since there is no data retrieved from database because if user is not logged in then $user_id must be empty.

First of all check if $user_id is available then and then call find() method.

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';
    }
}