我对Laravel和Eloquent都很陌生,所以这很容易变得微不足道但无论如何我到目前为止一直错过了一个很好的解决方案。所以继承我的问题:
我有一个主画廊,我希望用户能够将他需要的任何图像或视频上传到主画廊,并从该画廊中选择图像/视频,以便在网站的其他地方显示(基本上我是什么做的是将多媒体内容集中在一个地方。)
使用演绎(我对Eloquent的所有知识都很差)我发现这是对我来说最好的解决方案:
//Gallery Model
class Gallery extends Eloquent {
protected $table = 'gallery';
protected $guarded = array();
public static $rules = array();
public function images() {
return $this->morphMany('Image', 'imageable');
}
public function videos() {
return $this->morphMany('Video', 'videoable');
}
}
//About Orchestra Model
class OrchestraAbout extends Eloquent {
protected $table = 'orchestra_about';
protected $guarded = array();
public static $rules = array();
public function images() {
return $this->morphMany('Image', 'imageable');
}
public function videos() {
return $this->morphMany('Video', 'videoable');
}
}
//Image Model
class Image extends Eloquent {
protected $guarded = array();
public static $rules = array();
public function imageable()
{
return $this->morphTo();
}
}
//Video Model
class Video extends Eloquent {
protected $guarded = array();
public static $rules = array();
public function videoable()
{
return $this->morphTo();
}
}
当插入数据库时,我只是复制行,只更改imageable_id / videoable_id和imageable_type / videoable_type以匹配OrchestraAbout模型。
这里的任何人都知道更好的解决方案吗?
感谢所有聪明的答案!干杯!