laravel 就像使用数组数据对数组列进行查询

问题描述 投票:0回答:1

这是我的数据库数据设计 标题描述技巧[]

请求数据是标签数组,我想用数据库技能检查它 如果像数据库技能这样的标签则返回所有工作

$companyTags = CompanyJobTag::where('company_id', $company->id)->get();
$query = EmployerJob::with('user');

$tags = [];
foreach ($companyTags as $key => $tag) {
      array_push($tags, $tag->tag);
}

$query->where(function($q) use($tags){
        for ($i=0; $i < count($tags); $i++) { 
            $q->orWhere('title', 'LIKE', "%{$tags[$i]}%");
        }
});
$jobs = $query->orderByDesc('created_at')
    ->paginate(10);
        
    return response()->json($jobs, 200);

在这里我可以使用公司标签数组检查雇主的工作, 但 empoyerjob 还包含工作技能数组,所以我如何才能只获得与公司标签数组匹配的工作

here is employerjob table screenshot

php laravel eloquent
1个回答
0
投票
$companyTags = CompanyJobTag::where('company_id', $company->id)->pluck('name'); //select tags column
$query = EmployerJob::whereJsonContains('skills',$companyTags)->with('user');
© www.soinside.com 2019 - 2024. All rights reserved.