2011-07-08 34 views
0

我有一个名为Uploads的表。如何为表中的条目添加两次命名约定?

我已经做在这个表中的条目有“型”,即 YouTube的视频链接和图像表上传

所以我写了这样的代码

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

和 //用于图像 回声$形式 - >输入( 'Project.Upload.Name',阵列( '类型'=> '文件', '标签'=>假));

如何区分这两个字段? 有没有这样的命名约定,以便我可以分离出链接和图像的字段。

+0

为什么你不只有2个单独的领域?那会解决你的问题......不是? – YonoRan

回答

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')); 

你在这里做什么是你的第一次上传有关联第一个具有隐藏值“图像”的类型字段。因此,第一个条目将被存储在您的数据库中(像Cake-Array):

对图像和视频的处理当然要在保存数据库之前完成。

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

是的我想要单独的上传字段,但对于视频和图像两个东西。我的概率是什么,当我必须插入上传表类型,我不知道哪一个是视频和哪个是这个数组[ ] =>'' )) – vibha

+0

请看看我的编辑 – Tim

+0

非常感谢。它的工作... – vibha