首页 > 解决方案 > Laravel 8 删除 sql 上的 qoute

问题描述

嗨,我只想知道我做错了什么

这是我的功能

public function fetchJobs(Request $request){
    $id = (int)$request->input("id");

    $jobs = DB::table('job')
    ->select('job.*')
    ->where('job.status', '=', 0)
    ->Where('application.applicant','=' ,null)
    ->leftJoin('application', function($join) use ($id)
    {
        $join->on('application.job', '=', 'job.id');
        $join->on('application.applicant','=',$id);
    })
    ->toSql();
    return $jobs;
}

这是结果

select `job`.* from `job` 
left join `application` on `application`.`job` = `job`.`id` and `application`.`applicant` = `39` 
where `job`.`status` = 0 and `application`.`applicant` is null

错误是 39 has qoutes 有没有办法删除 qoute?

标签: sqllaravel

解决方案


我通过添加 DB:raw() 解决了这个问题

public function fetchJobs(Request $request){
    $id = (int)$request->input("id");

    $jobs = DB::table('job')
    ->select('job.*')
    ->where('job.status', '=', 0)
    ->Where('application.applicant','=' ,null)
    ->leftJoin('application', function($join) use ($id)
    {
        $join->on('application.job', '=', 'job.id');
        $join->on('application.applicant','=',DB::raw($id));
    })
    ->get();
    return $jobs;
}

推荐阅读