使用Laravel中的原始查询绑定参数

使用Laravel中的原始查询绑定参数,laravel,laravel-5,Laravel,Laravel 5,我有一个对分页列表页面的查询。部分选择和,其中部分是原始查询。为了避免sql漏洞,我需要为此查询使用参数绑定。对于WhereRaw查询,它可以正常工作,但在选择部分中不工作 请看我的查询: $aJob = JobKeywords::where('job_keywords.status', 1) ->where('job_keywords.expiry_date', '>=', $today); whereRaw(

我有一个对分页列表页面的查询。部分选择,其中部分是原始查询。为了避免sql漏洞,我需要为此查询使用参数绑定。对于WhereRaw查询,它可以正常工作,但在选择部分中不工作

请看我的查询:

$aJob  = JobKeywords::where('job_keywords.status', 1)
                        ->where('job_keywords.expiry_date', '>=', $today);
           whereRaw('MATCH(job_title,company_name,skills) AGAINST (? IN BOOLEAN MODE) > 0', [$keyword])
      ->select([DB::Raw('job_keywords.job_id as job_id, ? as candidate_id, 1 as fts_search', [$candidateId]),"job_keywords.location as job_location_name",
        DB::raw('MATCH(job_title,company_name,skills) AGAINST (? IN BOOLEAN MODE) as score', [$keyword]),
        "job_keywords.company_name",
        "job_keywords.job_id as id","job_keywords.job_title",
         "job_keywords.skills",
         "job_keywords.expiry_date",
        "job_keywords.monthly_salary_range_min","job_keywords.monthly_salary_range_max",
        'job_keywords.min_experience_in_year',
        'job_keywords.metadata'])
->orderBy('score', 'DESC')
->paginate(10);
WhereRaw
中的参数绑定工作正常,但
Select(DB::Raw)
中的参数绑定不工作。它将抛出
SQLSTATE[HY093]:无效参数编号错误
。如果我们调试
print\r($aJob->toSql())和print\r($aJob->getBindings())
,那么您可以看到DB::raw中的参数

有人知道这件事吗?

你试过了吗


急切地等待着答案(它帮助了你:)
$orders = DB::table('orders')
   ->selectRaw('price * ? as price_with_tax', [1.0825])
   ->get();`