为CakePHP'手动打包数据;s save()

为CakePHP'手动打包数据;s save(),php,cakephp,save,Php,Cakephp,Save,我试图在cakephp中为save()函数打包一些数据。我是PHP新手,所以我对如何用代码编写以下内容感到困惑: Array ( [ModelName] => Array ( [fieldname1] => 'value' [fieldname2] => 'value' ) ) 谢谢大家! 我认为你需要像下面这样做: $this->Followers->create(); $t

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

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

谢谢大家!

我认为你需要像下面这样做:

$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)

要回答您的问题,您可以通过以下操作创建所需的阵列结构并保存它:

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

请注意: 根据您在上面的评论中所写的内容,您似乎没有遵守CakePHP约定。这样做是可能的,但是如果您决定尽可能多地坚持CakePHP默认值,并且只有在有充分理由这样做的情况下才按照自己的方式进行,那么您将节省大量的时间和麻烦

有几件事需要记住:

  • 模型名称应为单数。这意味着您的模型应该被称为Follower,而不是Followers
  • 数据库中模型的主键应仅命名为
    id
    ,而不是
    followers\u id
    ,并应设置为数据库中的主键和自动增量

  • 如果你决定不遵循惯例,你可能会发现自己在每一步都在挠头,想知道为什么事情不管用。请查看以了解更多详细信息。

    您到底想要什么?您面临的问题是什么?我没有使用任何表单,但我需要将一些数据保存到数据库中。我有一个Followers模型,它有两个表:user_id和follower_id。我正在尝试创建一个$data包,以便使用cakephp手动创建和保存()。但是我读到为了使用save()函数,我首先必须将$data数组转换成适当的格式。是的,您必须使用上面的格式…但是我仍然不明白您为什么没有任何格式?谢谢!我现在就试试这个!另外,我不知道我做的是否正确,但是对于我站点中的一个特定区域,我没有使用表单帮助器,但我仍然需要创建并保存到数据库中。同样等效:
    $this->Followers->save(数组('Followers'=>array('user\id'=>user\id,'follower\id'=>Followers\id))