保存在CakePHP中与同一型号相关的多个记录



我有一个评级系统,用户应在每年的输入表中输入他的数据(列出了所有年份),然后他一次保存所有输入数据,如果数据为以前存在,然后系统应在输入字段中显示数据,以便用户可以更新记录,如果该年度不存在数据,则输入字段应为空,并且当用户输入A时,系统应添加新记录在现场的价值。我有一些问题。数据在输入字段中没有显示这是第一个问题。第二个问题是我尝试保存数据时我没有在数据库中得到任何新的问题。

查看:

<table width="100%" style="font-size:12px">
    <tr>
        <th>Year</th>
        <th>Value</th>
        <th>Data Quality </th>
        <th>Reference</th>
        <th>Comment</th>
    </tr>
    <? foreach ($years as $year) :?>
        <tr>
            <td><? echo $year['ReportYear']['year'];?></td>
            <? echo $this->Form->create('IndicatorDatum');?>
            <? echo $this->Form->hidden('IndicatorDatum.id');?> 
            <td > <? echo $this->Form->input('IndicatorDatum.value', array('label'=> false)); ?></td>
            <td> <? echo $this->Form->input("IndicatorDatum.Assurance",array(
                    'style'=>'width:250px; display: -webkit-inline-box;', 
                    'type'=>'select',
                    'multiple'=>'checkbox',
                    'options'=>$assurances,
                    'label' => false)
                ); ?> 
            </td>
            <td><? echo $this->Form->input('IndicatorDatum.comment',array(
                    'type' => 'textarea', 
                    'escape' => false,
                    'label' => false));?>
            </td>
            <td><? echo $this->Form->input('IndicatorDatum.reference',array(
                    'type' => 'textarea', 
                    'escape' => false,
                    'label' => false));  ?>
            </td>
        </tr>
    <? endforeach ; ?> 
</table>

控制器:

if ($this->request->is('post')|| $this->request->is('put')) {
    if ($this->IndicatorDatum->saveMany($this->request->data['IndicatorDatum'])) {
            $this->Session->setFlash(
                __('The indicator data has been saved'),
                 'flash/success'
            );
            $this->redirect(array(
                'action'=>'edit_group',
                $group_id
            ));
        } else {
            $this->Session->setFlash(
                    __('The indicator data could not be saved. Please verify the fields highlighted in red and try again.'),
                    'flash/error'
            );
    }
}

我尝试向您展示如何实现目标。只需阅读以下代码并尝试作为您的愿望实施即可。

// view
echo $this->Form->create('ReportYear', array('action' => 'add'));

// Use loop for multiple rows 
// Here I use 0 for only one row
    echo $this->Form->input('IndicatorDatum.0.value');
    echo $this->Form->input('IndicatorDatum.0.comment');
    echo $this->Form->input('IndicatorDatum.0.reference');

echo $this->Form->end('Save');

// in controller
public function add() {
    if (!empty($this->request->data)) {
        // Use the following to avoid validation errors:
        unset($this->ReportYear->IndicatorDatum->validate['id']);
        $this->Company->saveAssociated($this->request->data);
    }
}

为了最好地理解,请阅读cakephp

中的相关模型数据(hasone,hasmany,eslato)

update

echo $this->Form->input('IndicatorDatum.0.value', array(
        'value'=>$data['IndicatorDatum'[0]['value'
    )
);

在这里,我在输入字段中添加了value属性。我只是投入价值,但是您需要在这里放置适当的价值,您想看到

相关内容

  • 没有找到相关文章

最新更新