Php 如何用Elount检索Laravel中具有特定标签的所有图像?
我有三张桌子:Php 如何用Elount检索Laravel中具有特定标签的所有图像?,php,laravel,eloquent,Php,Laravel,Eloquent,我有三张桌子: Table: images Columns: Image_ID, Title, Description, Author, Date, Path, Rating Table: tags Columns: Tag_ID, Title Table: tag_image Columns: Image_ID, Tag_ID 如果我想获得所有图像,我会这样做: public function specificTag($tagName){ $images = Image:
Table: images
Columns: Image_ID, Title, Description, Author, Date, Path, Rating
Table: tags
Columns: Tag_ID, Title
Table: tag_image
Columns: Image_ID, Tag_ID
如果我想获得所有图像,我会这样做:
public function specificTag($tagName){
$images = Image::orderBy('created_at', 'desc')->get();
return view('specificTag', ['images' => $images]);
}
然后在我的specificTag视图中循环浏览$images。但是,现在我只想显示带有$tagName标记的图像$标记名是一个字符串。任何提示都将不胜感激 您将使用
whereHas
方法
Image::whereHas('tags', function($q) use ($tagName) {
return $q->where('title', $tagName);
})->orderBy('created_at', 'desc')->get();
您可以使用
whereHas
方法
Image::whereHas('tags', function($q) use ($tagName) {
return $q->where('title', $tagName);
})->orderBy('created_at', 'desc')->get();
你为什么不利用雄辩的多对多关系呢。 在“图像”模型中创建以下函数 现在,在控制器中,您可以像这样访问它
$image = App\Image::find(1);
foreach($image->tags as $tag){
$tag->where('title',$title);
}
你可以看看Eloquent的关系为什么不利用Eloquent的多对多关系呢。 在“图像”模型中创建以下函数 现在,在控制器中,您可以像这样访问它
$image = App\Image::find(1);
foreach($image->tags as $tag){
$tag->where('title',$title);
}
你可以看看Eloquent的关系我有点困惑,我在哪里定义变量$images?我有点困惑,我在哪里定义变量$images?