douchen4547 2014-10-03 11:37
浏览 16
已采纳

将多个记录从1个模型保存到另一个模型

I have multiple records I cant save . What is happening is that only the last record is saved and not the others. I am also trying to remove the id from each record. I have tried SaveAll,SaveMany etc

http://book.cakephp.org/2.0/en/models/saving-your-data.html

controller

if ($this->request->is('post')) {
    $this->Availtmp->create();
    $tutoredit = array('Availtmp' => $this->request->data);
    debug($tutoredit) ;

    $tutoredit['Availtmp']['id']=NULL;
    $tutoredit['Availtmp']['tutor_id']=$id;;

    if ($this->Availtmp->save($tutoredit)) {
        $this->Session->setFlas.....
    }

view

foreach ($tutor as $key => $item):

    echo $this->Form->input('AvailabilityForTutor.'.$key.'weekday', 
        array('value' => $this->request->data[$key]['AvailabilityForTutor']['weekday'])
    );

    echo $this->Form->input('AvailabilityForTutor.'.$key.'start_time', 
        array('type' => 'time', 'selected'=>$this->request->data[$key]['AvailabilityForTutor']['start_time'])
    );

    echo $this->Form->input('AvailabilityForTutor.'.$key.'end_time', 
        array('type' => 'time','selected'=>$this->request->data[$key]['AvailabilityForTutor']['end_time'])
    );


    echo $this->Form->hidden('AvailabilityForTutor.'.$key.'.id',
        array('value' => $this->request->data[$key]['AvailabilityForTutor']['id'])
    );

endforeach;

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


**data**array(
    'Availtmp' => array(
        'AvailabilityForTutor' => array(
            (int) 0 => array(
                'weekday' => 'Monday',
                'start_time' => array(
                    'hour' => '09',
                    'min' => '00',
                    'meridian' => 'am'
                ),
                'end_time' => array(
                    'hour' => '11',
                    'min' => '00',
                    'meridian' => 'pm'
                ),
                'id' => '99'
            ),
            (int) 1 => array(
                'weekday' => 'Tuesday',
                'start_time' => array(
                    'hour' => '09',
                    'min' => '00',
                    'meridian' => 'am'
                ),
                'end_time' => array(
                    'hour' => '10',
                    'min' => '00',
                    'meridian' => 'pm'
                ),
                'id' => '100'
            ),
            (int) 2 => array(
                'weekday' => 'Wednesday',
                'start_time' => array(
                    'hour' => '12',
                    'min' => '00',
                    'meridian' => 'am'
                ),
                'end_time' => array(
                    'hour' => '12',
                    'min' => '00',
                    'meridian' => 'am'
                ),
                'id' => '101'
            ),
            (int) 3 => array(
                'weekday' => 'Thursday',
                'start_time' => array(
                    'hour' => '12',
                    'min' => '00',
                    'meridian' => 'am'
                ),
                'end_time' => array(
                    'hour' => '12',
                    'min' => '00',
                    'meridian' => 'am'
                ),
                'id' => '102'
            ),
            (int) 4 => array(
                'weekday' => 'Friday',
                'start_time' => array(
                    'hour' => '12',
                    'min' => '00',
                    'meridian' => 'am'
                ),
                'end_time' => array(
                    'hour' => '12',
                    'min' => '00',
                    'meridian' => 'am'
                ),
                'id' => '103'
            ),
            (int) 5 => array(
                'weekday' => 'Saturday',
                'start_time' => array(
                    'hour' => '09',
                    'min' => '00',
                    'meridian' => 'am'
                ),
                'end_time' => array(
                    'hour' => '11',
                    'min' => '00',
                    'meridian' => 'pm'
                ),
                'id' => '104'
            ),
            (int) 6 => array(
                'weekday' => 'Sunday',
                'start_time' => array(
                    'hour' => '12',
                    'min' => '00',
                    'meridian' => 'am'
                ),
                'end_time' => array(
                    'hour' => '12',
                    'min' => '00',
                    'meridian' => 'am'
                ),
                'id' => '105'
            )
  • 写回答

1条回答 默认 最新

  • duanquan4451 2014-10-03 15:44
    关注

    Did you try

    $this->Availtmp->saveAll($this->request->data['AvailabilityForTutor']);
    

    your are missing a dot

    echo $this->Form->input('AvailabilityForTutor.'.$key.'weekday', 
    

    it should be

    echo $this->Form->input('AvailabilityForTutor.'.$key.'.weekday', 
    

    you missed that on every line in your ctp except for the field id

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口