mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Fixing yet another issue related to beforeValidate and
validateAssociated
This commit is contained in:
parent
8966f1b324
commit
111a23274e
3 changed files with 34 additions and 1 deletions
|
@ -2357,7 +2357,9 @@ class Model extends Object implements CakeEventListener {
|
|||
if ($options['deep']) {
|
||||
$validates = $this->{$association}->validateAssociated($values, $options);
|
||||
} else {
|
||||
$validates = $this->{$association}->create($values) !== null && $this->{$association}->validates($options);
|
||||
$this->{$association}->create(null);
|
||||
$validates = $this->{$association}->set($values) && $this->{$association}->validates($options);
|
||||
$data[$association] = $this->{$association}->data[$this->{$association}->alias];
|
||||
}
|
||||
if (is_array($validates)) {
|
||||
if (in_array(false, $validates, true)) {
|
||||
|
|
|
@ -1127,4 +1127,34 @@ class ModelValidationTest extends BaseModelTest {
|
|||
$this->assertEquals($expected['Article'], $result['Article']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests that altering data in a beforeValidate callback will lead to saving those
|
||||
* values in database, this time with belongsTo associations
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testValidateFirstAssociatedWithBeforeValidate2() {
|
||||
$this->loadFixtures('Article', 'User');
|
||||
$model = new CustomArticle();
|
||||
$model->validate = array(
|
||||
'title' => array(
|
||||
'notempty' => array(
|
||||
'rule' => 'notEmpty',
|
||||
'required' => true
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$data = array(
|
||||
'User' => array('user' => 'foo', 'password' => 'bar'),
|
||||
'CustomArticle' => array(
|
||||
'body' => 'a test'
|
||||
)
|
||||
);
|
||||
$result = $model->saveAll($data, array('validate' => 'first'));
|
||||
$this->assertTrue($result);
|
||||
|
||||
$this->assertEquals('foo', $model->field('title', array('body' => 'a test')));
|
||||
}
|
||||
|
||||
}
|
|
@ -5947,6 +5947,7 @@ class ModelWriteTest extends BaseModelTest {
|
|||
* @return void
|
||||
*/
|
||||
public function testValidateAssociated() {
|
||||
$this->loadFixtures('Attachment', 'Article', 'Comment');
|
||||
$TestModel = new Comment();
|
||||
$TestModel->Attachment->validate = array('attachment' => 'notEmpty');
|
||||
|
||||
|
|
Loading…
Reference in a new issue