laravel - Laravel 根据类别显示产品视图
问题描述
这是我的 ShopController
public function index()
{
if (request()->category) {
$products = Product::with('categories')->whereHas('categories', function ($query) {
$query->where('slug', request()->category);
})->take(40)->paginate(9);
$categories = Category::all();
} else {
$products = Product::inRandomOrder()->take(40)->paginate(9);
$categories = Category::all();
}
return view('/pages/showroom')->with([
'products' => $products,
'categories' => $categories,
]);
}
/**
* Display a specified of the resource.
*
* @param string $slug
* @return \Illuminate\Http\Response
*
*/
public function show($slug)
{
$product = Product::where('slug', $slug)->firstOrFail();
return view('/pages/product')->with('product', $product);
}
}
我应该怎么做才能根据特定类别返回不同的视图(不仅仅是每个类别的一个视图)?
解决方案
如果您的类别数量有限,您可以根据类别名称创建视图并返回动态视图而不是静态视图。
您的视图文件结构可能是这样的:
页面
产品
类别-slug-1.blade.php
类别-slug-2.blade.php
类别-slug-3.blade.php
然后你应该像这样在你的控制器中返回视图
return view('pages.product.' . $slug)->with('product', $product);
推荐阅读
- angular - 错误: : 找不到对象来监视 Foo()
- python-3.x - 硒不刮
- neo4j - Neo4j 设置默认数据库失败
- java - 计算粘贴文本中的字符
- javascript - 如何将不同的数据类型模型值从 html 传输到控制器
- azure - Azure 数据工厂无法将字符串列值转换为日期时间
- flutter - 从 Google Places 文本搜索请求返回多种类型
- google-apps-script - 公式在 Google App 脚本控制台中有效,但在电子表格中返回身份验证错误
- laravel - Laravel 7 我无法在远程服务器上显示我的图像,但可以在本地显示
- angular - 角度拦截器出错后无法获取响应标头