2017-01-24 7 views
0

Я использую рамки cakephp 2.0. Я хочу сохранить несколько строк в одно время здесь мои личные данныеКак сохранить несколько строк за один раз в cakephp2.0?

enter code here 
[EveAppointmentSlot] => Array 
    (
     [appointment_from_time] => Array 
      (
       [0] => 3:30 PM 
       [1] => 3:30 PM 
      ) 

     [appointment_to_time] => Array 
      (
       [0] => 3:45 PM 
       [1] => 3:45 PM 
      ) 

    ) 

) 

appointment_from_time нулевой индекс 3:30 пополудни, и appointment_to_time индекс равен нулю: - 3:45 вечера и так же, как и для других индексов Я хочу, чтобы сохранить данные в эта таблица enter image description here

Теперь, когда я хочу данных при сохранении, как

enter code here 
appointment_from_ time  appointment_to_time 
3:30 PM       3:45 PM 
3:30 PM       3:45 PM 

Здесь я использовал этот код, но не работает должным образом: -

enter code here 
foreach($data['EveAppointmentSlot'] as $k=> $v){ 
       echo $k; 
       foreach($data['EveAppointmentSlot'][$k] as $key=>$value){ 
        $this->EveAppointmentSlot->create(); 
        $this->EveAppointmentSlot->save($value); 
        } 
     } echo "sucess"; die; 
+0

Что вы подразумеваете под "* не работает должным образом"? есть ли у вас ошибка? неправильный результат? безрезультатно ? –

+0

Прежде всего, откуда берутся эти данные? Если это придет, сформируйте любое сообщение формы, которое тоже сформируется. Тогда все будет легко. –

ответ

0
  1. Ваша структура должна быть

    [EveAppointmentSlot] => Array 
        (
         [0] => Array 
          (
           [appointment_from_time] => 3:30PM, 
           [appointment_to_time] => 3:45PM 
          ) 
         [1] => Array 
          (
           [appointment_from_time] => 3:30PM, 
           [appointment_to_time] => 3:45PM 
          ) 
        ) 
    
  2. Кроме того, данные должны быть преобразованы в современные данные.

Таким образом, с данными у вас уже есть, скажем, в $data, это может помочь:

$new_data = array(); 
    foreach($data['EveAppointmentSlot'] as $attr => $slot) { 
     foreach($slot as $i => $value) { 
      $new_data[$i][$attr] = date('H:i:s', strtotime($value)); 
     } 
    } 

    if($this->EveAppointmentSlot->saveMany($new_data)) { 
     echo 'success'; 
    } 
    else { 
     echo 'failed'; 
    } 
0

Необходимо сначала сохранить данные для сохранения, а затем использовать saveMany, чтобы сохранить их сразу.

$dataToSave = array(); 
foreach($data['EveAppointmentSlot'] as $k => $d){ 
    $index = 0; 
    foreach($d as $v){ 
     $dataToSave[$index][$k] = date("H:i:s", strtotime($v)); //Convert AM/PM time to 24h format supported by mysql. 
     $index++; 
    } 
} 
if($this->EveAppointmentSlot->saveMany($dataToSave)){ 
    echo "success"; 
}else{ 
    echo "error"; 
} 
+0

не работает, он переходит в состояние ошибки – kunal

+0

Обновлено: Можете ли вы показать мне ошибки, которые вы получаете? –

0

Ваша структура должна быть:

$new_data[EveAppointmentSlot] = Array 
(
    [0] => Array 
     (
      [appointment_from_time] => 3:30PM, 
      [appointment_to_time] => 3:45PM 
     ) 
    [1] => Array 
     (
      [appointment_from_time] => 3:30PM, 
      [appointment_to_time] => 3:45PM 
     ) 
) 

Используйте этот формат, и все записи сохранить в таблице.

if($this->EveAppointmentSlot->saveAll($new_data)) { 
    echo 'success'; 
} 
else { 
    echo 'failed'; 
}