我有3张桌子。1个定义视频,1个定义转盘,1个数据透视表定义一个视频所属的转盘(即使它属于任何转盘)。
我试图以尽可能简单的方式在下面描述我的表格
ID标题用户
id carousel_id video_id
id carousel_type
如何使用雄辩模型关系在数据库中查询功能表中具有给定轮播类型的所有视频。我正在使用Laravel 5,如果有帮助的话。我已经按照他们的文档中所述尝试了morphMany,但是我必须做错了什么。
谢谢!
编辑:
表名:
影片,功能,轮播
型号名称:
视频,功能,轮播
#编辑2:表格:演员表,功能,功能模型:投放,功能
这是我目前遇到的文件。
控制器:
class castController extends Controller {
public function index()
{
$carousel_casts = \App\Feature::find(1)->casts;
foreach($carousel_casts as $casts){
echo $casts->title . "<br>";
}
}
}
模型:
public function casts()
{
return $this->belongsToMany('\App\Cast','featureables');
}
我有特定的表名是有原因的,我要接管一个现有的项目,并且表名不能更改。当前表是演员表(视频),要素(轮播表),要素(枢轴表)。
我可以分别查询所有这些表而没有问题,但是当我使用belongsToMany关系时,出现以下错误。
SQLSTATE [42S22]:未发现柱:1054未知列'featureables.feature_id'在'字段列表'(SQL:选择casts
。*, featureables
。feature_id
如pivot_feature_id
,featureables
。cast_id
作为pivot_cast_id
从casts
内连接featureables
上casts
。id
= featureables
。cast_id
其中featureables
。feature_id
= 1)
首先,将features
表重命名为carousel_video
。
接下来,在Carousel
模型中定义关系,如下所示:
public function videos()
{
return $this->belongsToMany('YourAppNamespace\Video');
}
然后,查询Carousel
模型,如下所示:
$videos = Carousel::find(2)->videos; //finds all videos associated with carousel having id of 2
return $videos;
您可以通过在Video
模型上定义一个关系来做到相反:
public function carousels()
{
return $this->belongsToMany('YourAppNamespace\Carousel');
}
并且,查询如下:
$carousels = Video::find(2)->carousels; //finds all carousels associated with video having id of 2
return $carousels;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句