如何为表中的条目添加两次命名约定?

时间:2011-07-08 07:43:21

标签: cakephp naming-conventions cakephp-1.3

我的表名为Uploads。

我要用'type'在这个表中输入两次 即对于youtube视频链接和表格上传中的图像

所以我写了这样的代码

//用于视频链接 echo $ form-> input('Project.Upload.Name',array('type'=>'file','label'=> false));

和 //用于图像 echo $ form-> input('Project.Upload.Name',array('type'=>'file','label'=> false));

如何区分这两个字段? 是否有任何方式命名约定,以便我可以分离链接和图像的字段。

1 个答案:

答案 0 :(得分:2)

如果你想要两个上传字段,你必须这样命名:

echo $form->input('Project.Upload.0.Name', array('type'=>'file','label' => false));
echo $form->input('Project.Upload.1.Name', array('type'=>'file','label' => false));

这将在$this->data中创建一个可供使用的数组。请查看食谱中的how to save related model data以获取更多更深入的信息。

修改

如果您需要跟踪上传的类型,则必须按照以下方式添加:

echo $form->input('Project.Upload.0.Name', array('type'=>'file','label' => false));
echo $form->input('Project.Upload.0.Type', array('type'=>'hidden','value' => 'image'));
echo $form->input('Project.Upload.1.Name', array('type'=>'file','label' => false));
echo $form->input('Project.Upload.1.Type', array('type'=>'hidden','label' => 'video'));

您在此处执行的操作是将第一个上传与第一个具有隐藏值“image”的类型字段相关联。因此,第一个条目将存储在您的数据库中(如Cake-Array):

图像和视频的处理当然必须在将其保存到数据库之前完成。

array(
    [Upload] => array(
        [0] => array(
            [id] => 1,
            [name] => 'test.jpg',
            [type] => 'image'
        ),
        [1] => array(
            [id] => 1,
            [name] => 'test.avi',
            [type] => 'video'
        )
    )
)