【发布时间】:2017-06-15 12:41:41
【问题描述】:
我想知道如何在 Laravel 中进行选择连接时创建一个名为“type”的默认变量并将值设置为“car”。
到目前为止,这是我的代码:
$items = DB::table('items')->orderBy('created_at', 'desc')
->join('items_categories', 'items.item_category_id', '=', 'items_categories.category_id')
->select(
'items.id as items___item_id',
'items.item_title as items___item_title',
'items_categories.id as items_categories___category_id',
'items_categories.title as items_categories___category_title',
)
->take(20);
这很好用。但是,我需要为此选择的每条记录获取/添加自定义键和值,以便稍后在模板中使用它来进一步过滤内容。
所以,我需要添加一个名为type 的键,其值为car,所以在 print_r 中我会看到每条记录的 type => car,我可以在我的代码中使用它。
怎么做?
我可以把那个 somhow 放在选择中吗?
喜欢:
->select(
'items.id as items___item_id',
'items.item_title as items___item_title',
'items_categories.id as items_categories___category_id',
'items_categories.title as items_categories___category_title',
//something like this?
'type' = 'car'
)
因为现在我得到了这个:
Array
(
[0] => stdClass Object
(
[items___item_id] => 10
[items___item_user_id] => 2
[items___item_title] => A new blue truck
[items_categories___category_id] => 1
[items_categories___category_title] => Truck
)
[1] => stdClass Object
(
[items___item_id] => 11
[items___item_user_id] => 2
[items___item_title] => VW Tiguan
[items_categories___category_id] => 1
[items_categories___category_title] => SUV
)
我想得到这个:
Array
(
[0] => stdClass Object
(
[items___item_id] => 10
[items___item_user_id] => 2
[items___item_title] => A new blue truck
[items_categories___category_id] => 1
[items_categories___category_title] => Truck
[type] => car
)
[1] => stdClass Object
(
[items___item_id] => 11
[items___item_user_id] => 2
[items___item_title] => VW Tiguan
[items_categories___category_id] => 1
[items_categories___category_title] => SUV
[type] => car
)
如果可能,不在模型文件中,而是在一次查询期间,因为我需要进行此修改的只有一次。
【问题讨论】:
-
有人知道怎么做吗?
-
你不使用 Eloquent 有什么原因吗?
-
您是否要根据类型进行选择,例如
car? -
@RikardOlsson 我想在 select 语句期间动态创建一个名为
type的新虚拟列(数据库中不存在此列),并将该字段中的所有值分配给 @987654329 @(所有结果)。 -
我不确定我是否遵循.. 在您的查询结果中,您想动态添加一个带有值的新“列”,然后将此结果分配给您称为 Car 的模型?
标签: php mysql laravel select eloquent