【问题标题】:converting query in Query Builder在查询生成器中转换查询
【发布时间】:2019-11-04 08:21:05
【问题描述】:

如何在查询生成器中转换此查询。

public function ajaxsearch(string $value = null) //for search, from sidebar
{
    return $value ? Teacher::select('id', 'efirst', 'esecond')
        ->whereRaw("UPPER(efirst) LIKE '" . strtoupper($value) . "%'")
        ->limit(7)
        ->get() : [];
}

我尝试了以下方法,但是如何在 laravel 中将大小写转换为大写。

DB::table('teachers')
    ->select("id", "efirst", "esecond")
    ->limit(7)->get() : [];

【问题讨论】:

  • 您在这两种情况下都在使用查询生成器。不要在数据库查询中转换为上层,在客户端进行。
  • 老师::是模特,怎么不是?

标签: laravel eloquent query-builder


【解决方案1】:

试试这个查询:

Teacher::select('id', 'efirst', 'esecond')
->whereRaw("UPPER(efirst) LIKE '" . strtoupper($value) . "%'") 
->limit(7)->get();

数据库查询:

return $value ?
DB::table('teachers')
->select('id', 'efirst', 'esecond')
->whereRaw("UPPER(efirst) LIKE '" . strtoupper($value) . "%'")
->limit(7)
->get():[]; 

【讨论】:

  • 前端什么也没返回,这里是日志; [2019-11-04 09:20:11] local.INFO: array ( 0 => 'select id, UPPER(efirst), esecond from teachers where UPPER(efirst) LIKE \'%A% \' 限制 7', 1 => 数组 ( ), 2 => 6.01,
  • 您到底想要什么?大写的列?还是比较大写的记录?
  • 我想从数据库中获取记录(任何情况)并以大写形式显示结果。
  • 在您的列中首先以大写形式存储?
  • 它有小写和一些大写的值。
猜你喜欢
  • 2015-12-13
  • 1970-01-01
  • 1970-01-01
  • 2020-06-20
  • 1970-01-01
  • 2019-03-09
  • 2021-08-07
  • 2015-07-21
  • 1970-01-01
相关资源
最近更新 更多