php - 创建一个搜索算法,该算法在一个单独的数据库表中包含一些关键字,该数据库表链接到 Laravel 主表
问题描述
我正在尝试通过产品表创建搜索算法,但使用名为类别的不同表进行分类。我的搜索算法只能搜索产品表,但无法将类别关键字与产品表匹配。下面是我在控制器中的搜索功能。
$product = $request->input('product');
$categories = Category::with('categories')->where(['parent_id' => 0])->get();
$productsAll = Product::query()->where('product_name', 'LIKE', "%{$product}%")
->orWhere('state', 'LIKE', "%{$product}%")
->orWhere('lga', 'LIKE', "%{$product}%")->where('status', 1)->get();
return view('pages.results')->with(compact('categories','productsAll','product'));
}
我的类别模型
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model implements Searchable
{
public function categories(){
return $this->hasMany('App\Category','parent_id');
}
}
我的产品型号
namespace App;
use Illuminate\Database\Eloquent\Model;
use Auth;
use Session;
use DB;
class Product extends Model implements Searchable
{
public function attributes(){
return $this->hasMany('App\Product','id');
}
public static function productCount($cat_id){
$catCount = Product::where(['category_id'=>$cat_id,'status'=>1])->count();
return $catCount;
}
public static function getProductStatus($product_id){
$getProductStatus = Product::select('status')->where('id',$product_id)->first();
return $getProductStatus->status;
}
public static function getCategoryStatus($category_id){
$getCategoryStatus = Category::select('status')->where('id',$category_id)->first();
return $getCategoryStatus->status;
}
}
解决方案
推荐阅读
- python - 我无法隐藏 python exe 文件控制台
- reactjs - 从父组件中找出子组件挂载在react中
- linux - 使用 find 命令获取 n 级父级
- node.js - 迭代nodejs中的数组后如何仅返回一次响应?
- javascript - 防止使用 load-google-maps-api 在 vuejs 中多次加载
- amazon-web-services - 尝试从 AWS Elastic Beanstalk Multicontainer 中的私有 Docker 存储库中提取时出现 CannotPullContainerError
- mongodb - 如何在mongodb中获取子文档中的最后一个元素
- c# - 使用 Max() 在实体框架中自联接
- javascript - 在反应异步中更新状态行为不正确
- python - 在 python 中,是否可以在没有授权码的情况下编辑公开共享的谷歌表?