Конструктор запросов Laravel. Столбец если не null = 1 else = 0 в методе select
Я использую Laravel и его \Illuminate\Database\Eloquent\Builder
. Я хотел бы выбрать все столбцы из "table_1" a иметь пользовательский столбец "is_table_2_present", значение которого будет равно 1 или 0 в зависимости от того, если(table_1_id != недействительный).
Поэтому я хотел бы сделать что-то подобное.
$queryBuilder->leftJoin("table_2"....)
$queryBuilder->select([
"table_1.*",
"is_table_2_present" = (table_2_id != null) ? 1 : 0,
]);
Я пытался найти ответ, но без особого успеха. Поэтому я хотел бы спросить, возможно ли что-то подобное?
Причина, по которой я не могу использовать красноречивые отношения, заключается в том, что мне нужны отношения с параметром. И это невозможно в ларавеле, верно?
public function table_2($userId)
{
return $this->hasOne(Table_2::class....)->where(user_id, "=", userId);
}



Ответы - Конструктор запросов Laravel. Столбец если не null = 1 else = 0 в методе select / Laravel query builder. Column if not null = 1 else = 0 in select method

07.01.2020 08:23:23
Концептуально каждая таблица связана с моделью. Попробуйте красноречивое отношение между моделями двух таблиц, которые вы пытаетесь запросить.




12.01.2020 02:19:46
Поскольку этот вопрос вроде как умер, никаких респонов на некоторое время я решил его с помощью selectRaw() на данный момент. Но все равно в поисках более аккуратного решения.
$queryBuilder->selectRaw("
table_one.*,
CASE WHEN table_two.id IS NOT NULL THEN 1 ELSE 0 END AS tableTwoPresent
");