php - 如何在 CakePHP 中插入多个表单数据作为数据库中的新行

标签 php mysql cakephp

我使用 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/

相关文章:

php - curl 到 cfhttp 翻译

php - 存储许多用户同时请求的时间戳的最佳方式

php - .env 更改后,Laravel 数据库仍使用旧名称

php - 模型文件不返回 codeigniter 中的值

Python MySQLdb 转换列表数据以从 SELECT 输出 CSV

mysql - 3 表加减法

CakePHP:检索 Controller 中的特定表字段

mysql - 如何在 cakephp 中为日期字段使用 mysql now() 函数?

CakePHP:发送电子邮件以解决崩溃问题

php - 无法在 xampp 中启动 apache