2015-07-06 2 views
-1

Мне нужно установить 30 или 29 или 30 или 28 входов, в зависимости от текущего месяца, и получить текст с этих входов после сообщения. на мой взгляд, я сделал так:cakephp 2 Как установить динамическое имя ввода

echo $this->Form->create('Cra'); 
foreach ($MonthDaysM as $i) : ?> 
<td><?php echo $this->Form->input($i, array('label'=>false));?></td> 
<?php endforeach; ?> 
</form> 

и в контроллере

if ($this->request->is('post')) { 




$date = $this->request->data['Cra'][$i]; 

.....

Но не работает, потому что имя входа не должно быть переменной. но как я могу получить содержимое моих входов ????

+0

Непонятно, что вы пытаетесь сделать здесь. Для чего нужны входы? – drmonkeyninja

+0

С какими версиями тортов вы работаете? – drmonkeyninja

ответ

0

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

<?php foreach ($MonthDaysM as $i) : ?> 
    <td><?php echo $this->Form->input('your_field_name.' . $i, array('label'=>false));?></td> 
<?php endforeach; ?> 

Тогда в проверке контроллера $this->request->data['Cra']['your_field_name']. Это должен быть массив.

0

Я не очень понятно, как определяется ваша модель «Cra», но если вы хотите, чтобы получить содержимое ваших входов:

На ваш взгляд:

<?php for($i = 1; $i <= date('t'); $i++) : ?> 
<td><?php echo $this->Form->input('Cra.days.'.$i, array('label'=>false)); ?></td> 
<?php endfor; ?> 

Тогда в вашем контроллер вы можете получить доступ к содержимому вашего дней массива таким образом:

if($this->request->is('post')){ 
    $days = $this->request->data['Cra']['days']; 
} 

Например, результаты для массива 'дней, будет:

Array 
(
    [1] => Day 1 content 
    [2] => Day 2 content 
    [3] => Day 3 content 
    ... 
) 

Надеюсь, это поможет.

Смежные вопросы