我使用 Jquery Clone 添加更多表单来填充数据。然后我想在新的数据库行中单独添加表单的所有数据。数据库表将是.ex。根据我的数组。
name | author | category
ABC 2 1
XYZ 2 1
PQR 5 2
我的数组
Array
(
[Book] => Array
(
[name] => Array
(
[0] => ABC
[1] => XYZ
[2] => PQR
)
[author] => Array
(
[0] => 2
[1] => 2
[2] => 5
)
[category] => Array
(
[0] => 1
[1] => 1
[2] => 2
)
)
)
最佳答案
你必须将你的数据以这样的 saveAll 兼容格式放置
array(
'Book' => array(
0 => array(
'name' => 'xxx',
'author' => 'yyy',
),
1 => array(
'name' => 'aaa',
'author' => 'bbb',
)
)
)
您可以通过转换您的 jquery 克隆传递的数据来做到这一点。像这样的东西。注:未测试
$data = array();
$names = Hash::extract($jquerycloneData,'Book.name');//array(ABC,XYZ,PQR);
$authors = Hash::extract($jquerycloneData,'Book.author');
$categories = Hash::extract($jquerycloneData,'Book.category');
$i=0;
for($i, $i<count($names) ,$i++){
$data['Book'][$i]['name'] = $names[$i];
$data['Book'][$i]['author'] = $authors[$i];
$data['Book'][$i]['category'] = $categories[$i];
}
然后简单地在你的 Book 模型中调用 saveAll
$this->saveAll($data);
假设您的数据以您上面提供的格式到达
关于php - 如何在 CakePHP 中插入多个表单数据作为数据库中的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30070589/