2014-02-17 3 views
0

Как проверить данные формы без имени модели. Когда я печатаю $this->data, я получаю данные в следующем формате массива. Но поля не содержат имени модели.Как проверить поля формы без имени модели в cakephp

Array 
(
    [select_family] => Select 
    [select_cores] => Select 
    [select_color] => Select 
    [select_back_color] => Select 
    [select_panel] => Select 
    [select_design] => Select 
    [select_thickness] => Select 
    [select_edge] => Select 
    [quantity] => 
    [save] => Save 

) 

Заранее спасибо.

+0

формы, представленные поля не будут содержать название модели, вы должны указать соответствующую модель, а затем написать правила проверки для поля –

+0

вы не можете просто связать эти входы с какой-то моделью? – arilia

ответ

0

Вы должны использовать название модели, потому что подтверждение не знает, где и что подтвердить.

Ofcourse Вы можете установить имя модели перед проверкой (например beforeValidation обратного вызова или до $this->Model->set() в контроллере)

0

Если вы получаете данные из пользовательского интерфейса, то вам просто нужно сделать это в действии вашего контроллера

(
[select_family] => $this->request->data['x'], 
[select_cores] => $this->request->data['x'], 
[select_color] => $this->request->data['x'], 
[select_back_color] => $this->request->data['x'], 
[select_panel] => $this->request->data['x'], 
[select_design] => $this->request->data['x'], 
[select_thickness] => $this->request->data['x'], 
[select_edge] => $this->request->data['x'], 
[quantity] => 
[save] => Save 

) 

где x - имя поля ввода пользовательского интерфейса.

0

Вы можете сохранить и утвердить эти структуры данных:

По умолчанию:

Array 
(
    [ModelName] => Array 
    (
     [fieldname1] => 'value' 
     [fieldname2] => 'value' 
    ) 
) 

Сохранение нескольких записей:

$data = array(
    array('title' => 'title 1'), 
    array('title' => 'title 2') 
); 

Так преобразовать массив данных для соответствующего формата, прежде чем проверка/сохранение Это. Например:

$data['ModelName'] = $this->data; 
$this->save($data); 

или

$data = array($this->data); 
$this->saveMany($data); 
Смежные вопросы