一个用于上传CakePHP中多个资源的表

时间:2010-04-07 07:14:40

标签: cakephp upload

我有CakePHP应用程序,我想在其中附加图库到多个资源。假设我有艺术家,每个人都有自己的画廊。我有文章,每篇文章都附有一些图片等等。现在我设置这样的表:

  1. 艺术家有很多Artistimages,artistimages表中的字段是:id, artist_id, filename, filetype, filesize等。
  2. 文章有很多文章图片,articleimages表格中的字段是:id, article_id, filename, filetype, filesize等。
  3. ......但我认为这不应该是这样的。

    是否有可能有一个名为uploads的表,它将包含所有带有外键的图像,指向资源对其的影响?如何告诉CakePHP哪个图像来自哪个资源?

3 个答案:

答案 0 :(得分:0)

如果这是我,我会有images表,然后我会将艺术家和文章hasAndBelongsToMany添加到图像中。

然后你的HABTM会有两个连接表artists_imagesarticles_images,然后运气好的话,Cake会在这些连接表中写入每个连接表之间的关系。因此,您最终应该得到与正确图像相关的正确内容。

通过使用HABTM,您甚至可以将一个图像与文章和艺术家相关联,并且如果需要,可以将相同的图像关联多次。

希望这是有道理的,书中有更多关于HABTM的信息,http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM

答案 1 :(得分:0)

我建议使用Polymorphic Behavior。我经常为涵盖图像,文档等的Binary模型执行此操作。这些模型代表可与任意数量的模型(照片,申请人等)相关联的物理文件。

多态关系的要点是该表有2个额外的字段。一个字段指示要关联的模型的名称(例如PhotoApplicant等),另一个字段指示外键值(即id例如,photos表中的字段。

答案 2 :(得分:0)

对于所有寻找使用多态行为和MeioUpload的工作解决方案的人,请查看this。我现在正在使用它,似乎工作正常。