Использование CakePHP 1.3.6
Я уверен, что мне, возможно, придется добавить код и примеры, но я начну с этого: у меня есть большая форма create (), основанная на родительской модели, которая "имеет много" из нескольких других моделей. которые имеют поля, созданные в форме.
Некоторые из «дочерних» моделей (которые также помечены как «принадлежащие» родителю) имеют поле «флажок» (tinyint 1, флажок) и поле «примечания» (текст, ввод текста).
Внутри одной из дочерних моделей, если я помещаю debug($this->data);
в любой из пользовательских обратных вызовов проверки, я получаю это:
Array
(
[Preapp120aItem] => Array
(
[checked] => 1
[notes] => 1ere's some notes.
[agent_id] => 1
)
)
Где текстовая область содержит «вот некоторые заметки». и не"1ere's ...", как указано выше.
Кроме того, после выполнения saveAll()
для родителя я получаю эту ошибку для рассматриваемой дочерней модели:
Notice (8): Array to string conversion [CORE/cake/libs/model/datasources/dbo_source.php, line 749]
Warning (512): SQL Error: 1054: Unknown column 'Array' in 'field list' [CORE/cake/libs/model/datasources/dbo_source.php, line 684]
Query: INSERT INTO `preapp120d_items` (`checked`, `notes`, `modified`, `created`) VALUES (1, Array, '2011-01-06 08:27:40', '2011-01-06 08:27:40')
Где часть информации трассировки стека показывает это, о модели:
Preapp120dItem::$Preappform = Preappform object
$fields = array(
"checked",
"notes",
"modified",
"created"
)
$values = array(
"1",
array(
"preappform_id" => "18"
),
"2011-01-06 08:27:40",
"2011-01-06 08:27:40"
)
Как или почему поле notes
заполняется этим массивом?
Родительская модель называется 'preappform', и действительно, ее идентификатор равен 18 ... но ...?
Обновление 1:
По запросу, вот код из вида.
Переменная, используемая позже, помещается перед формой:
$default_notes_element_options = array(
'type' => 'textarea',
'rows' => '2',
'class' => 'text'
);
Форма создания:
<?php echo $form->create('Preappform', $default_form_create_options); ?>
<?php echo $form->input('Preappform.id', array('type'=>'hidden', 'value'=>$the_form['Preappform']['id'] )) ?>
поля Preapp120aItem
<td nowrap="nowrap"><?php echo $form->input('Preapp120aItem.checked', array('label'=>array('text' => 'Request this item', 'class' => 'checkbox-label'))) ?></td>
<td width="327">
<?php echo $form->input('Preapp120aItem.notes', $default_notes_element_options); ?>
<?php echo $form->input('Preapp120aItem.agent_id', array('type' => 'hidden', 'value' => '1' )); ?>
</td>
Обновление 2:
HTML в визуализации для модели Preapp120aItem.
<tr>
<td>120A</td>
<td nowrap="nowrap">
<input type="hidden" name="data[Preapp120aItem][checked]" id="Preapp120aItemChecked_" value="0" />
<input type="checkbox" name="data[Preapp120aItem][checked]" value="1" id="Preapp120aItemChecked" />
<label for="Preapp120aItemChecked" class="checkbox-label">Check this box</label>
</td>
<td width="327">
<textarea name="data[Preapp120aItem][notes]" rows="2" class="text" cols="30" id="Preapp120aItemNotes" ></textarea>
<input type="hidden" name="data[Preapp120aItem][agent_id]" value="1" id="Preapp120aItemAgentId" />
</td>
</tr>