手动打包CakePHP的保存数据()

时间:2011-10-03 09:16:18

标签: php cakephp save

我正在尝试为cakephp中的save()函数打包一些数据。我是PHP的新手,所以我对如何在代码中实际编写以下代码感到困惑:

Array
(
    [ModelName] => Array
        (
            [fieldname1] => 'value'
            [fieldname2] => 'value'
        )
)

谢谢!

2 个答案:

答案 0 :(得分:8)

要回答您的问题,您可以创建所需的数组结构,并通过执行以下操作进行保存:

<?php
$data = array(
    'ModelName' => array(
        'fieldname1' => 'value',
        'fieldname2' => 'value'
    )
);
$this->ModelName->save($data);
?>

请注意: 根据您在评论中的上述内容,您似乎没有遵守CakePHP惯例。有可能以这种方式做事,但如果你决定尽可能地坚持使用CakePHP默认值,那么你将节省很多时间和麻烦,并且只有在你有充分理由的时候才能以自己的方式做到。

要记住的几件事情是:

  1. 模型名称应该是单数。这意味着您的模型应该被称为Follower而不是Followers。
  2. 数据库中模型的主键应仅命名为id,而不是followers_id,并且应在数据库中设置为PRIMARY KEY和AUTO_INCREMENT。
  3. 如果你决定不遵守这些约定,你可能会发现自己摸不着头脑,想知道为什么事情不起作用,每一步都是如此。请尝试查看CakePHP documentation以获取更多详细信息。

答案 1 :(得分:3)

我认为您需要执行以下操作:

$this->Followers->create();
$this->data['Followers']['user_id'] = $user_id;

$this->data['Followers']['follower_id'] = $follower_id; // If it is primary and auto increment than you don't need this line.

$this->Followers->save($this->data)