我制作标签系统,当用户点击某个链接时,显示与其相关的所有结果
在视图中我有这样的链接
@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
答案 0 :(得分:0)
我不确定你想要完成什么。当您点击标签时,您会看到具有该标签的产品吗?
这里有几件事情,我会指出。
您正在混合GET
和POST
。 searchTags(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)
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'));
}