Cakephp 3.4-如何验证关联关系数据?

时间:2020-07-29 17:36:26

标签: validation cakephp cakephp-3.x

例如,我有俱乐部表和俱乐部明细表。俱乐部表有很多细节。

我的表单控件如下:

$this->Form->control('name');
$this->Form->control('club_payment_settings.0.no_of_account');
$this->Form->control('club_payment_settings.0.actual_rate');
$this->Form->control('club_payment_settings.1.no_of_account');
$this->Form->control('club_payment_settings.1.actual_rate');
$this->Form->control('club_payment_settings.2.no_of_account');
$this->Form->control('club_payment_settings.2.actual_rate');

在控制器中编写的代码如下:

$club = $this->Clubs->patchEntity($club, $this->request->getData(), [
    'associated' => [
        'ClubPaymentSettings' => [
            'validate' => 'default'
        ],
    ]
]);

如何在模型validationDefault()中进行验证?我正在尝试在我的ClubsTable.php文件中执行以下操作:

public function initialize(array $config)
    {
        parent::initialize($config);
        $this->setTable('clubs');
        $this->setPrimaryKey('id');

        $this->addBehavior('Timestamp');
        $this->hasMany('ClubPaymentSettings', [
             'foreignKey' => 'club_id',
             'joinType' => 'LEFT'
        ]);
       
    }
public function validationDefault(Validator $validator)
{
    $validator
        ->integer('id')
        ->allowEmpty('id', 'create');
    $validator
        ->requirePresence('name', true)
        ->notEmpty('name');

    $settingValidator = new Validator();
    $settingValidator->requirePresence('no_of_account', true);
    $settingValidator->requirePresence('actual_rate', true);

    $validator->addNestedMany('club_payment_settings', $settingValidator);
}

0 个答案:

没有答案
相关问题