当前位置: 首页 > 面试题库 >

带有Laravel 5雄辩的CONCAT列

井通
2023-03-14
问题内容

认为我是Laravel初学者

目标是:我有两个列,现在我需要在表中以同一行id作为前缀component name

例如(工作)…我有Mysql

SELECT CONCAT(components.name," ", components.id) AS ID
FROM   `components`

和输出是

ID

|TestComp 40  |
 -------------
|component 41 |
 -------------
|test 42      |

我需要用laravel雄辩的方式来表示,因为这里Component是Model name。所以我尝试了类似的东西

$comp=Component::select("CONCAT('name','id') AS ID")->get()

但这不起作用。
我认为是因为语法错误。
请帮助我正确的语法。使用laravel Models

注意:我进行了上述查询,将其称为Internet上可用的查询。

User::select(DB::raw('CONCAT(last_name, first_name) AS full_name'))

问题答案:

您需要将查询包装在DB::raw

$comp = Component::select(DB::raw("CONCAT('name','id') AS ID"))->get()

另外,请注意,因为您正在执行这样的查询,所以模型的行为可能会有所不同,因为此选择会从select语句中删除所有其他字段。因此,如果没有新的查询,就无法从模型中读取其他字段。因此,仅将其用于读取数据而不是修改数据。

另外,为了使其列表更好,我建议您将查询修改为:

$comp = Component::select(DB::raw("CONCAT('name','id') AS display_name"),'id')->get()->pluck('display_name','id');
// dump output to see how it looks.
dd($comp);// array key should be the arrray index, the value the concatted value.


 类似资料:
  • 问题内容: 我想返回所有类别的所有项目。 此查询我现在返回的类别为1或2或3的项目。我需要返回的类别为1和2以及3的项目。 我怎样才能做到这一点? 问题答案: 试试这个: 使用查询将仅返回具有所有列出类别的项目。

  • 我有一个表事务与复合主键id,Nom,日期和一个表Cour与Nom作为主键和一个事务有关一个Cour。 我怎样才能得到一个有口才关系的特定交易的课程?

  • 我试着补充: 并用调用,但响应为空。

  • 我有两个模型。模型有一个(关系)。 关于模型,我有以下关系:

  • 我被一个简单的任务困住了。我只需要这通电话的结果 其中,是一个模型。我试过这个 但它不起作用。从表中获取所有数据并对其进行排序的更好方法是什么?

  • 我在Laravel 4.2中有一个雄辩的陈述,看起来像这样 然后,如果不存在,我还必须检查一个相反的情况,我这样做。。。 我真正想做的是运行一个查询,同时检查两种情况。。 在伪表达式中,我需要如下内容: 所以基本上我需要 我怎么能用雄辩的语言做到这一点呢。我找不到更多关于或雄辩的陈述。 谢谢 更新: 经过更多的寻找,我发现这似乎工作(仍在测试很多) 或 这有什么缺点需要我考虑吗?