我知道问题不是那么清楚,我会尝试证明这一点......
主要问题: 我正试图为我网站上的所有媒体制作媒体库。我有3种类型的媒体 Image & 视频& Slider .. Slider 媒体中包含一些图片。
我想做什么 如何制作一个可以在我的数据库中包含这些对象的模型,以便 - >如果我想在小部件或博客或我网站的任何部分的帖子中使用媒体,我只是将此网站部分作为媒体对象的ID
我尝试了什么
Media
表包含(id
,media_type
,id_in_type_table
)
image
表格中包含(id
,path
)
Video
表格中包含(id
,path
)
Slider
表包含(id
,path_img_1
,path_img_2
,path_img_3
)
但我不知道如何将它们联系起来以正确检索媒体对象
这个图库数据库有更好的结构吗?以及如何关联表格?
修改==> 经过另一个想法: 滑块实际上是由一些图像构成的,那么我们只有两种类型的视频& 图像,虽然它们具有相同的结构,但结构将是这样的......
Media
表包含(id
,type
,array_of_IDs
)
type
=>为了演示类型,它将不会被使用
array_of_IDs
=>可以有一个或多个图库对象
Gallery
表格中包含(id
,path
)
然而我不确切知道Laravel如何实施这种方法,因为我是新的......有什么帮助吗?
答案 0 :(得分:1)
简单的方法是将DB更改为以下3个表
class MediaProperty extends Eloquent{
$table = media_properties
$filleable = array('prop_name');
}
class Media extends Eloquent{
$table = $media
public function mediaProperties(){
return $this->belongsToMany('MediaProperty','media_to_properties', 'media_id', 'prop_id')->withPivot('val');
}
}
那么你将拥有2个模型,它们大致如下:
docker logs rabbitmq_container_id
当您使用id(mediaProperties)添加id来调用模型时,这将允许您使用除路径之外的更多属性来扩展媒体对象。
写于laravel 4.2