[英]Getting all item from choosen tag with Laravel
我有一個頁面,我顯示圖像+標簽添加到圖像。 我想讓標簽可點擊,當我點擊某個標簽打開所有帶有此標簽的圖像時。
我有3個表: images
的圖像, tags
的標簽和分配給帶有列的圖像的標簽的image_tag
( image_id
和tag_id
)。 我的模特是
在Tag模型中,我添加了這種關系
public function byTags() {
return $this->belongsToMany('App\Image', 'item_tag');
}
我已將此添加到我的Image模型中,但我不確定是否需要它
public function byTags() {
return $this->belongsToMany('App\Tag');
}
這是應該加載所有圖像的href鏈接
<a href="{!! url('byTag/' . $tag->id) !!}"> {!! $tag->tag !!} </a>
這是我的路線
Route::get('byTag/{tag_id}', 'ImageController@byTag')->name('bytag');
ImageController
byTag()
函數
public function byTag($tag_id){
$images = Tag::with('byTags')->whereId($tag_id)->get();
return view('bytag', compact('images'));
}
單擊按鈕時發生的情況是我在視圖bytag
而不是帶有此標記的圖像上獲得了標記。
我想念的是什么?
您應該使用Image
model和whereHas()
方法加載圖像:
$images = Image::whereHas('tags', function ($q) use($tag_id) {
$q->where('id', $tag_id);
})->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.