Neden bu metin / notlar alan tasarrufu üzerinde bir dizi ile doldurulur ediliyor?

0 Cevap php

Using CakePHP 1.3.6

Ben kodu ve örnekler eklemek zorunda kalabilirsiniz eminim, ama ben bu ile başlayacağız: I () alanlarına sahip birçok diğer modelleri 'çoğuna sahiptir' bir üst modeline dayalı d 'oluşturmak olduğunu büyük bir form var şeklinde oluşturulur.

(Ebeveyn 'ait' olarak da işaretlenmiş) 'çocuk' modellerinin birkaç alan (tinyint 1, onay) ve 'notlar' alanını (metin, textarea girişi) 'kontrol' var.

Ben özel doğrulama geriçağırımlarının herhangi debug($this->data); koyarsanız, ben bu olsun, çocuk modellerinden biri içeriden:

Array
(
    [Preapp120aItem] => Array
        (
            [checked] => 1
            [notes] => 1ere's some notes.
            [agent_id] => 1
        )

)

Textarea içeren Nerede "Burada bazı notlar var." ve not "1ere var ...", yukarıdaki gibi.

Ayrıca, ebeveyn üzerinde bir saveAll() yaparken üzerine, ben söz konusu çocuk model için, bu hatayı alırsınız:

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') 

Nerede yığın izleme bilgileri parçası modeli hakkında, bu gösterir:

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"
)

How or why is the notes alan ebeveyn modeli 'preappform' olarak adlandırılan ve gerçekten, onun kimliği 18 olduğunu ? Bu dizi ile doldurulur ... ama ... ediliyor?

Update 1:

Talep olarak, burada görünümünde bazı kod.

Variable used later, placed before form:

$default_notes_element_options = array(
    'type' => 'textarea',
    'rows' => '2', 
    'class' => 'text' 
);  

Form Create:

<?php echo $form->create('Preappform', $default_form_create_options); ?>
<?php echo $form->input('Preappform.id', array('type'=>'hidden', 'value'=>$the_form['Preappform']['id'] )) ?>

Preapp120aItem fields

<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>

Update 2:

Preapp120aItem model için, işlenmiş HTML gibi.

<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>

0 Cevap