cakephp字段命名约定 - 保存多个模型

时间:2013-05-17 07:23:45

标签: cakephp

Chart hasMany Series
Series belongsTo Chart
Series hasAndBelongsToMany Industry
Series hasAndBelongsToMany Sector
Industry hasMany Sector
Sector belongsTo Industry

我正在尝试允许用户将图表与多个系列一起保存。

我应该如何命名输入字段以及要保存的方法以保存所有模型?

1 个答案:

答案 0 :(得分:0)

一次保存多个关联模型值的常规约定如下:

$data = array(
    'User' => array('userFieldName' => 'fieldValue'),
        'Chart' => array(
            array(
                'chartFieldName' => "chartFieldValue",
                'Series' => array(
                    array(
                        'firstSerieItemField' => "Value",
                    ),
                    array(
                        'secondSerieItemField' => "Value",
                    )
                    ...
                    ...//More Series Data
                )
            )
        )
    );

$this->User->saveAll($data);

注意:不要忘记在模型之间分配关系

但您可以通过在视图页面中正确定义字段值来实现它。只记得遵循这种模式:

topMdel["topModelFieldName"];
topModel["FirstAssociateModel"]["FirstAssociateModelFieldName"];
topModel["FirstAssociateModel"]["SecondAssociateModel"]["SecondAssociateModelFieldName"];

更清楚。在你的情况下:

对于Usermodel数据字段:

User["user_name"];
User["user_email"]; //etc.

对于图表模型数据字段:

User["Chart"]["chart_name"];
User["Chart"]["chart_value"]; //etc.
希望有所帮助。 对于系列模型数据字段:

User["Chart"]["Series"][0]["series_1_name"]; 
User["Chart"]["Series"][1]["series_2_name"]; 
User["Chart"]["Series"][2]["series_2_name"];