Невозможно связать переменную, чтобы выбрать Query Builder на Laravel - PullRequest
0 голосов
/ 15 мая 2019

Я не могу связать переменную с 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 голосов
/ 15 мая 2019

То, что вы пытаетесь сделать с помощью оператора SQL, может быть легко выполнено Eloquent Laravel.

Сначала давайте создадим модель:

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.Тейлор Отвелл будет гордиться тем, что вы используете Eloquent, а не DB::select

...