无法绑定变量以选择Laravel上的查询生成器

时间:2019-05-15 16:02:43

标签: laravel laravel-query-builder

我无法将变量绑定到DB::select(),但不能告诉我我在做什么错。

下面是我的代码;

$id = 1;
return DB::select('SELECT
    a.id,
    a.tender_name, (SELECT COUNT(id)
FROM
    merging_vendor_project
WHERE
    planning_id=a.id) as count_participants
FROM
    planning as a
WHERE a.id=?',[$id]);

我在做什么错,我该如何解决?

1 个答案:

答案 0 :(得分:0)

您想通过SQL语句尝试执行的操作可以很容易地由Laravel的Eloquent完成。

首先让我们创建模型:

php artisan make:model Planning

按照约定,我们不使用Planning,而是更像Plan,但是为了简单起见,我将使用Planning

class Planning extends Model
{
    public $table = 'planning'

    public function merging_vendor_project(){
       return $this->hasMany(MergeVendorProject::class)
    }
}

现在您可以在模型上使用简单的withCount,例如:

$id = 1
Planning::where('id', $id)->select('id', 'name', 'tender_name', 'merging_vendor_project_count')->withCount('merging_vendor_project')->get();

景气...你去。您已在Laravel style中进行了初始查询。泰勒·奥特威尔(Taylor Otwell)为您使用口才而不是DB::select

而感到自豪