php - Laravel/ Eloquent : How to use WHERE LIKE for combined fields?

标签 php mysql laravel eloquent

我有一个表单,其中包含1 个输入按全名(!)过滤:

<label>Search by fullname:</label>
<input type="text" name="fullname">

问题:全名在我的数据库用户表中被分成3个字段:

用户

<表类="s-表"> <头> id 标题 名字 姓氏 <正文> 1 博士 约翰 母鹿 2 彼得 潘

fullname = title + firstname + lastname

我想找到输入的结果 Dr. Doe,还有 John Doe 或只是 Peter

目前我只知道如何分别过滤每个字段:

$users = User::where('firstname', 'like', '%'.$keyword.'%')->get();

最佳答案

您可以使用 DB::raw()MySQL's concat实现这一目标:

$users = User::where(DB::raw('concat(title," ",firstname," ",lastname)'), 'like', '%'.$keyword.'%')->get();

关于php - Laravel/ Eloquent : How to use WHERE LIKE for combined fields?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54912634/

相关文章:

php - 如何找到哪个表属于单个参数(slug)

laravel - laravel master 和 5.0 有什么区别?

javascript - 从 PHP if 语句运行 JavaScript

javascript - 使用 JQuery 打开一个新的 php 页面

php 代码在 orderby 更改时创建新的 html 表

php - 错误 : ( ! ) 解析错误 : syntax error, 意外 '' (T_ENCAPSED_AND_WHITESPACE),需要标识符 (T_STRING)

javascript - 获取数组作为 Ajax 请求的响应

PHP/MySQL 上传不工作

php - 如何知道输入数组元素是否为空?

php - 如何在 Laravel 中声明无限参数?