我是新手在蛋糕和想知道如何插入多行在一个单一的saveall函数,我得到了这张桌子,
CREATE TABLE IF NOT EXISTS `dates` (
`date` varchar(10) COLLATE utf8_unicode_ci NOT NULL
)
我想做的是让用户选择开始日期和结束日期使用JQuery日历,一旦提交这个范围之间的所有日期将被保存到数据库中,我已经得到了日期数组例如:
`array(
(int) 0 => '5/8/2013',
(int) 1 => '6/8/2013',
(int) 2 => '7/8/2013',
(int) 3 => '8/8/2013',
)
'然后我的控制器看起来像这样:
public function index(){
if ($this->request->is('post')) {
$this->Date->create();
$data = array();
$data['dates']=array();
$startDate = $this->request->data['Date']['from'];
$endDate = $this->request->data['Date']['to'];
$datesBlocked = $this->loopDates($this->request->data['Date']['from'],$this->request->data['Date']['to']);
$data['dates'][] = $this->request->data['Blockdate']['from'];
$data['dates'][] = $this->request->data['Blockdate']['to'];
/*foreach($datesBlocked as $data) {
$data['dates'][] = $data;
}*/
if($this->Date->saveAll($data)) {
$this->Session->setFlash(__('done'));
if ($this->Session->read('UserAuth.User.user_group_id') == 1) {
// $this->redirect("/manages");
}
}
}
public function loopDates($from,$to){
$blockdates = array();
$start = strtotime($from);
$end = strtotime($to);
debug($start);
$counter = 0;
for($t=$start;$t<=$end;$t+=86400) {
$d = getdate($t);
$blockdates[$counter++] = $d['mday'].'/'.$d['mon'].'/'.$d['year'];
}
debug($blockdates);
return $blockdates;
}
问题是我不能得到foreach工作,如果我取消foreach的注释,我得到错误说非法字符串偏移'日期',所以我评论了,并尝试只添加开始日期和结束日期到数组,看看是否有效,然后我得到另一个错误说。
`array(
'dates' => array(
(int) 0 => '08/05/2013',
(int) 1 => '09/05/2013'
)
)`通知(8):数组到字符串的转换[CORE'Cake'Model'Datasource'DboSource.php, line 1005]代码
因为我试图在一个字段中插入2个值…我知道应该是这样的
`array(
'dates' => array( (int) 0 => '08/05/2013',
)
'dates' => array((int) 1 => '09/05/2013'
))
但不知道该怎么做。任何帮助将是非常感激!!!!
你想让你的数组使用saveAll()
保存多个日期的结构是这样的:
array(
'Date' => array(
0 => array(
'date' => '08/05/2013',
),
1 => array(
'date' => '09/05/2013',
)
),
)
我知道这有点晚了,但是要在一个循环中编写多行,您必须使用create()继续保存。
,
foreach($items as $lineItem){
$this->Invoice->create();
$this->Invoice->save(array(
'user_id'=>$property['User']['id'],
'invoice_id'=>$invId['Invoices']['id'],
'item_id'=>$lineItem['item_number'],
'quantity'=>$lineItem['quantity'],
'price'=>$lineItem['mc_gross']
);
}
只是觉得值得一提,希望能帮到别人。