|
@@ -6,7 +6,7 @@ use Illuminate\Http\Request;
|
|
|
use App\Services\LiquidRenderer;
|
|
|
use App\Models\DistProduct;
|
|
|
use App\Models\DistProductCategory; // 引入分类模型
|
|
|
-
|
|
|
+use App\Models\SitePage;
|
|
|
|
|
|
class ProductController extends Controller
|
|
|
{
|
|
@@ -162,6 +162,46 @@ class ProductController extends Controller
|
|
|
'name' => $product->title,
|
|
|
];
|
|
|
|
|
|
+ //能过 seo_keywords 查找相有相同 seo_keywords的产品, seo_keywords 可能是多个,用逗号分隔
|
|
|
+ $seo_keywords = $product->seo_keywords;
|
|
|
+
|
|
|
+
|
|
|
+ if($seo_keywords) {
|
|
|
+ $seo_keywords_array = explode(',', $seo_keywords);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ $seo_keywords_array = [];
|
|
|
+ }
|
|
|
+ $relatedPages= [];
|
|
|
+
|
|
|
+ if(!empty($seo_keywords_array))
|
|
|
+ {
|
|
|
+ $seo_keywords_array = array_map('trim', $seo_keywords_array);
|
|
|
+ $seo_keywords_array = array_unique($seo_keywords_array);
|
|
|
+
|
|
|
+ // 构建查询条件
|
|
|
+ $query = SitePage::where('dist_id', getDistId())
|
|
|
+ ->where('status', 1);
|
|
|
+
|
|
|
+ // 为每个关键词添加查询条件
|
|
|
+ $query->where(function($q) use ($seo_keywords_array) {
|
|
|
+ foreach ($seo_keywords_array as $keyword) {
|
|
|
+ $q->orWhere(function($subQ) use ($keyword) {
|
|
|
+ $subQ->where('seo_keywords', 'LIKE', $keyword)
|
|
|
+ ->orWhere('seo_keywords', 'LIKE', $keyword . ',%')
|
|
|
+ ->orWhere('seo_keywords', 'LIKE', '%,' . $keyword)
|
|
|
+ ->orWhere('seo_keywords', 'LIKE', '%,' . $keyword . ',%');
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 获取相关产品
|
|
|
+ $relatedPages = $query->orderBy('id', 'desc')
|
|
|
+ ->limit(10)
|
|
|
+ ->get();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
// 渲染模板并传递数据
|
|
|
return $this->liquidRenderer->render('products_detail.liquid',
|
|
@@ -169,6 +209,7 @@ class ProductController extends Controller
|
|
|
'product' => $product,
|
|
|
'relatedProducts' => $relatedProducts,
|
|
|
'breadcrumbs' => $breadcrumbs,
|
|
|
+ 'relatedPages' => $relatedPages,
|
|
|
]);
|
|
|
}
|
|
|
}
|