单击时如何获取链接的http请求

时间:2015-08-05 01:43:10

标签: php jquery laravel search tags

我制作标签系统,当用户点击某个链接时,显示与其相关的所有结果

在视图中我有这样的链接

@foreach($productTags as $tags)
    <a href="{{ action('Product\ProductController@searchTags', ['tags_id' => $tags->id]) }}" id="tags">{{$tags->tags}}</a>
@endforeach

路线

Route::get('tags/{tags}','Product\ProductController@searchTags');

我想在控制器中得到它,就像这样

public function searchTags($tags)
       {
        dd($request->get('tags_ids'));
         $search = \DB::table('products')->select('tags','id')
                               ->where('tags',$tags)->get();
                               return view('products.show.search',
                                                            compact('search'));
       }

但是我得到null

2 个答案:

答案 0 :(得分:0)

我不确定你想要完成什么。当您点击标签时,您会看到具有该标签的产品吗?

这里有几件事情,我会指出。

您正在混合GETPOSTsearchTags(Request $request)接受Request,就好像正在向其提交表单一样。但该路线为GET,您视图中的链接会产生GET请求。

假设您要单击标记并查看也具有该标记的产品,您可以尝试以下内容:

products/show.blade.php

@foreach($productTags as $tag)
  <a href="/tags/{{ $tag->id }}">{{ $tag->name }}</a>
@endforeach

routes.php

Route::get('tags/{id}', 'TagsControlller@show');

TagsController.php

/**
 * Display products with tag 
 *
 * @param $id
 * @return Response
 */
 public function show($id)
 {
     $products = Product::with('tags')->where(['id' => $id])->get();
     return view('tags.show')->with('products', $products);
 }

答案 1 :(得分:0)

您的ProductController中的

public function searchTags($tag_id) 
{
         $search = \DB::table('products')->select('tags','id')
              ->where('tag_id','=', $tag_id)->get();
         return view('products.show.search',
              compact('search'));

}