Bonsoir à tous,
j'essaie tout simplement de créer une propriété virtuelle en concaténant 2 champs de ma table User (à titre d'exemple).
<?php
namespace App\Model\Entity;
use Cake\ORM\Entity;
use Cake\Auth\DefaultPasswordHasher;
class User extends Entity
{
protected $_accessible = [
'username' => true,
'email' => true,
'password' => true,
];
protected function _getFullName()
{
return $this->_properties['username'] . ' ' .
$this->_properties['email'];
}
}
et quand je debug l'entity dans le controller users :
$users = TableRegistry::get('Users');
$user= $users->find()->toArray();
debug($user); die();
/src/Controller/UsersController.php (line 24)
[
(int) 0 => object(App\Model\Entity\User) {
'id' => (int) 19,
'username' => 'alexyon',
'email' => 'alexyon@rrrr.fr',
'[new]' => false,
'[accessible]' => [
'username' => true,
'email' => true,
'password' => true,
],
'[dirty]' => [],
'[original]' => [],
'[virtual]' => [],
'[errors]' => [],
'[repository]' => 'Users'
},
donc je ne vois nulle part le nouveau champs crée (full_name).
merci.
ps : j'utilise cake 3.09.
j'ai vu sur plusieurs forums que le prb pouvait venir du nommage de l'entite ou de la table, moi j'ai tout crée à partir de composer (cake bake)
http://stackoverflow.com/questions/29275998/cakephp-3-0-virtual-property-missing-on-production-server
L'important c'est que quand tu fais un $user->full_name (ou $user[0]->full_name dans ton cas)
ça fonctionne, non? :o)
Je ne pense pas de toute façon qu'on puisse lister des getters ^^
Merci PhiSyX, je pensais qu'il apparaitrait dans l'array '[virtual]' => [], de l'entity, car du coup je ne sais pas à quoi sert cet array
vraiment dommage qu'on ne puisse pas utiliser cette propriété virtuelle dans les find ou pour faire des sommes de colonnes "virtuelles".