gpt4 book ai didi

mysql - 为 Eloquent 返回的结果中选定的列定义自定义键名称

转载 作者:行者123 更新时间:2023-11-29 22:07:59 24 4
gpt4 key购买 nike

我有一个像这样的 Eloquent 范围搜索查询,它接受这样的输入参数:

"ECEC 301 Advanced Programming for Engineers Lab",
"ECEC 301 Advanced Programming for Engineers Lecture",
"ECEC 302 Digital Systems Projects Lab",
"ECEC 471 Introduction to VLSI Design Lab"

使用此模型:

public function scopeSearchWithType($query, $searchTerm) {
return $query->where(
DB::raw("subject_code || ' ' || course_no || ' ' || course_title || ' ' || instr_type"),
'like',
'%' . $searchTerm . '%'
)->select(
$searchTerm,
'day',
'time',
'crn'
);
}

如您所见,每个输入字符串实际上是四个不同列的组合。

无论如何。当我运行此查询时,结果如下:

       "ECEC 471 Introduction to VLSI Design Lab": "ECEC 471 Introduction to VLSI Design Lab",
day: "W",
time: "09:00 am - 10:50 am",
crn: "12506"
}

如您所见,$searchQuery 的键是 的名称。我想为该键分配一个自定义名称,例如 course_name

我已经尝试了从 class => $searchTermclass as $searchTerm 的所有方法,但它们不起作用。

最佳答案

您可以将数组传递到范围查询的 $value 中。这将允许您定义一个 $search['term'] 和一个 $search['column'] 以便您可以动态重命名该列。

public function scopeSearchWithType($query, $search) {
return $query->where(
DB::raw("subject_code || ' ' || course_no || ' ' || course_title || ' ' || instr_type"),
'like',
'%' . $search['term'] . '%'
)->select(
$search['column'] . 'as' . $search['term'],
'day',
'time',
'crn'
);
}

但是,我应该提到,您将无法结束 Eloquent 查询,因为需要在查询范围中返回 QueryBuilder 对象。在此示例中,您将返回一个数组。您将无法再次在此范围查询之上链接方法,这只是一个预警。

关于mysql - 为 Eloquent 返回的结果中选定的列定义自定义键名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31972644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com