2015-04-19 4 views
2

В «представлении» моего действия «зарегистрироваться» я попытался создать поле даты для даты рождения.CakePhp FormHelper - поле ввода даты

echo $this->Form->input("Member.dateofbirth", array(
      "label" => "Date of birth", 
      "name" => "date_of_birth", 
      "id" => "date_of_birth", 
      "empty" => true, 
); 

Но когда я отправить данные с кнопки отправки, и сделать debug(), я вижу, что $this-> request->data["date_of_birth"] содержит только год, и не содержит месяц и день.

debug($this->request->data["date_of_birth"]); 

Результат отладки():

array(
    'date_of_birth' => '1990' 
) 
+0

Какой тип поля в базе данных? – Choma

+0

DATE (это база данных MySQL) –

+0

Вы пытаетесь использовать имя поля по умолчанию? Я имею в виду, удалив опцию '' name ''в FormHelper. – Choma

ответ

2

Я думаю, что если вы установите name опцию в FormHelper, то это будет только изменить имя первого входа (поля даты имеют 3 входа) , Вот почему вы получаете только год, когда пытаетесь прочитать поле с этим именем.

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

Таким образом, в этом случае удаление name вариант в FormHelper воли позволяет читать поле как $this->request->data["Member"]["dateofbirth"]

+1

Странно, потому что это изменило название для трех входных данных. Но в любом случае, вы решили мою проблему, спасибо! ;) –

+0

Итак, вы получили три входа с именами '' data [Member] [date_of_birth] [year] "', '" data [Member] [date_of_birth] [month] "и' data data [Member] [ date_of_birth] [день] "'? Если это так, то вы должны читать его как '$ this-> request-> data [" Member "] [" date_of_birth "]' – Choma

+0

Нет, у них есть одноименные имена "date_of_birth": DI догадаться, что это была проблема. Когда я попытался получить доступ к трем сведениям, используя $ date_of_birth, будет сохранен только последний. –