与cakephp3实体的构建器

时间:2016-12-12 16:27:11

标签: cakephp-3.0 entities

我需要在CakePhp 3中对我的实体提供一些帮助。 我们的想法是在初始阶段将一些参数设置为新的权限。也许使用构建器(函数_setPrivateKey())。

我真的不明白我该怎么做。

当我写:

$this->Univer->newEntity();

我想自动设置一个属性:例如,我想直接生成$cleAuthentification而不在控制器中编写$univer->cleAuthentification = ramdomGenerate();。但是在权限类中有一个方法。 (我和其他语言一样的建设者)但我怎么能这样做?

这是我的Entitie类:     

use Cake\ORM\Entity;

/**
 * Univer Entity
 *
 * @property int $id
 * @property int $actif
 * @property string $cleAuthentification
 * @property string $clePrivee
 * @property string $clePublique
 * @property \Cake\I18n\Time $dateCreation
 * @property \Cake\I18n\Time $dateRelance
 * @property \Cake\I18n\Time $dateValidation
 * @property \Cake\I18n\Time $dateDernierAppel
 * @property string $domaine
 * @property string $nom
 * @property bool $refreshActif
 * @property string $traficMensuelCaptcha
 * @property string $traficMensuelSite
 * @property int $version
 * @property int $categorie_id
 * @property int $editeur_id
 * @property string $plugin
 * @property int $visiteurUniqueMensuel
 * @property int $saisieMensuelValide
 * @property int $clicMensuel
 * @property int $saisieUniqueMensuel
 * @property bool $getContent
 * @property bool $displayTab
 * @property bool $escape
 * @property bool $restrictionLDA
 * @property int $genre
 * @property string $age
 * @property float $cpeMin
 * @property string $dataComportementale
 *
 * @property \App\Model\Entity\TechnologyIntegration $technologyIntegration
 * @property \App\Model\Entity\Categorie $categorie
 * @property \App\Model\Entity\Editeur $editeur
 * @property \App\Model\Entity\Theme[] $theme
 */
class Univer extends Entity
{
    protected $_accessible = [
        '*' => true,
        'id' => false
    ];
}
`

请求帮助!

1 个答案:

答案 0 :(得分:0)

一种非常简单明了的方法是在实体中创建一个方法,如下所示:

public function initializeValues() {
    $this->foo = "bar";
    $this->cleAuthentification = this->randomGenerate();
}

然后执行以下操作:

$entity = $this->Univer->newEntity();
$entity->initializeValues();

或者,如果要在保存实体时执行此操作就足够了,可以将代码放在Table类的beforeSave()方法中 - 请参阅此处的文档:http://book.cakephp.org/3.0/en/orm/table-objects.html#beforesave: - )