例如,我有俱乐部表和俱乐部明细表。俱乐部表有很多细节。
我的表单控件如下:
$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);
}