簡體   English   中英

使用Laravel從選擇標簽中獲取所有項目

[英]Getting all item from choosen tag with Laravel

我有一個頁面,我顯示圖像+標簽添加到圖像。 我想讓標簽可點擊,當我點擊某個標簽打開所有帶有此標簽的圖像時。

我有3個表: images的圖像, tags的標簽和分配給帶有列的圖像的標簽的image_tagimage_idtag_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM