привет, у меня проблема с кодом ниже, я делаю ajax, и если данные точно такие же, он не вставляет запись.Но если текст в текстовой области изменяется, он должен обновить запись, но вместо этого он вставляет новую строку.
здесь моя модель
<?php
class Test extends AppModel {
var $belongsTo = array('table1','table2');
var $validate = array(
'field1' => array(
'rule' => 'duplicateCheck',
'message' => 'Duplicate record'
),
'textbody' => array(
'rule' => 'duplicateCheck',
'message' => 'Duplicate record'
)
);
function duplicateCheck() {
$conditions = array(
'Test.field1' => $this->data['Test']['field1'],
'Test.textbody' => $this->data['Test']['textbody']
);
return !$this->hasAny($conditions);
}
}
?>
и мой контроллер
<?php
function add() {
if(isset($this->data)) {
if($this->Test->save($this->data['Test'])) {
} else {
if(isset($this->Test->validationErrors['field1'])) {
}
}
}
}
?>
не уверен, как мне справиться с этим, спасибо
РЕДАКТИРОВАТЬ
хорошо, я изменил это на это, но теперь оно не будет обновлять поле
var $belongsTo = array('table1','table2');
var $validate = array(
'field1' => array(
'rule' => 'duplicateCheck',
'message' => 'Duplicate record'
),
'userid' => array(
'rule' => 'duplicateCheck',
'message' => 'Duplicate record'
)
);
function duplicateCheck() {
$conditions = array(
'Test.field1' => $this->data['Test']['field1'],
'Test.userid' => $this->data['Test']['userid']
);
return !$this->hasAny($conditions);
}
}?>