ajt
ajt

Reputation: 662

save multiple records from 1 model into another

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

Upvotes: 0

Views: 59

Answers (1)

Jelle Keizer
Jelle Keizer

Reputation: 721

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

Upvotes: 1

Related Questions