我的表名为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));
如何区分这两个字段? 是否有任何方式命名约定,以便我可以分离链接和图像的字段。
答案 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'
)
)
)