【发布时间】:2020-04-25 05:19:54
【问题描述】:
我使用 Laravel 及其 \Illuminate\Database\Eloquent\Builder。我想从“table_1”中选择所有列,其中包含自定义列“is_table_2_present”,其值将是 1 或 0,具体取决于 if(table_1_id != null)。
所以我想做这样的事情。
$queryBuilder->leftJoin("table_2"....)
$queryBuilder->select([
"table_1.*",
"is_table_2_present" = (table_2_id != null) ? 1 : 0,
]);
我试图寻找答案,但没有成功。所以我想问一下这样的事情是否可能?
我不能使用 Eloquent 关系的原因是因为我需要与参数的关系。这在 laravel 5.2 中是不可能的,对吧?
public function table_2($userId)
{
return $this->hasOne(Table_2::class....)->where(user_id, "=", userId);
}
【问题讨论】:
-
您可能有正当理由执行此原始查询,但您是否有理由不使用 Eloquent 关系?
-
我使用遗留代码,有点需要这样做。所以你的建议只是使用
->selectRaw()? -
@Spholt 我编辑了问题来解释为什么我不能使用 Eloquent 关系
标签: sql laravel laravel-query-builder