使用Cakephp 3的虚拟字段

6mzjoqzu  于 2022-11-12  发布在  PHP
关注(0)|答案(3)|浏览(143)

我需要在我的用户实体中有一个虚拟属性。我遵循了CakePHP的书。

用户实体.php

namespace App\Model\Entity;

use Cake\ORM\Entity;

class User extends Entity {

    protected $_virtual = ['full_name'];

    protected function _getFullName() {
        return $this->_properties['firstname'] . ' ' . $this->_properties['lastname'];
    }
}

在控制器中

$users = TableRegistry::get('Users');
$user = $users->get(29);
$firstname = $user->firstname; // $firstname: "John"
$lastname = $user->lastname; // $lastname: "Doe"
$value = $user->full_name; // $value: null

我完全按照这本书的要求做,只得到了一个null值。

polhcujo

polhcujo1#

根据@ndm的说法,问题是由于文件命名错误。我将用户实体类命名为UserEntity.phpThe CakePHP name conventions表示:
实体类OptionValue可以在名为OptionValue.php的文件中找到。

  • 谢谢-谢谢
wqsoz72f

wqsoz72f2#

namespace App\Model\Entity;

use Cake\ORM\Entity;

class User extends Entity {

protected $_virtual = ['full_name'];

 protected function _getFullName() {
   return $this->firstname . ' ' . $this->lastname ;
 }
}

you can back to resource here

dxxyhpgq

dxxyhpgq3#

为什么不直接去做这样的事情呢?

/*
 * Return Fullname
 */
public function getFullname()
{
    $name = $this->firstname . ' ' . $this->lastname;
    return $name;
}

相关问题