|
@@ -3,6 +3,7 @@
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
use App\Models\DistAppearanceTemplate;
|
|
|
+use App\Models\DistProduct;
|
|
|
use Illuminate\Http\Request;
|
|
|
use App\Services\LiquidRenderer;
|
|
|
use App\Models\SitePage;
|
|
@@ -120,6 +121,46 @@ class PageController extends Controller
|
|
|
];
|
|
|
// 构建导航数据 结束
|
|
|
|
|
|
+
|
|
|
+ //能过 seo_keywords 查找相有相同 seo_keywords的产品, seo_keywords 可能是多个,用逗号分隔
|
|
|
+ $seo_keywords = $page->seo_keywords;
|
|
|
+
|
|
|
+ $seo_keywords_array = explode(',', $seo_keywords);
|
|
|
+
|
|
|
+ if(!empty($seo_keywords_array))
|
|
|
+ {
|
|
|
+ $seo_keywords_array = array_map('trim', $seo_keywords_array);
|
|
|
+ $seo_keywords_array = array_unique($seo_keywords_array);
|
|
|
+
|
|
|
+ // 构建查询条件
|
|
|
+ $query = DistProduct::where('dist_id', getDistId())
|
|
|
+ ->where('enabled', 1)
|
|
|
+ ->where('status', 2);
|
|
|
+
|
|
|
+ // 为每个关键词添加查询条件
|
|
|
+ $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 . ',%');
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 获取相关产品
|
|
|
+ $relatedProducts = $query->with('images')
|
|
|
+ ->orderBy('order', 'desc')
|
|
|
+ ->orderBy('id', 'desc')
|
|
|
+ ->limit(4)
|
|
|
+ ->get();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
$template_file ='pages_detail.liquid';
|
|
|
|
|
|
if(!empty($page->template_file ))
|
|
@@ -139,6 +180,7 @@ class PageController extends Controller
|
|
|
'breadcrumbs' => $breadcrumbs,
|
|
|
'paginator' => $paginator,
|
|
|
'csrf_token' => csrf_token(),
|
|
|
+ 'relatedProducts' => $relatedProducts,
|
|
|
|
|
|
]);
|
|
|
}
|