Php 在laravel中雄辩的where子句中连接两列

Php 在laravel中雄辩的where子句中连接两列,php,mysql,laravel,eloquent,lumen,Php,Mysql,Laravel,Eloquent,Lumen,在我的数据库中,country\u code和phone\u number是两个不同的字段。用户正在输入一个包含国家代码和电话号码的字符串进行登录。为了验证这一点,我必须在雄辩的where子句中连接列country\u code和phone\u number 有人能告诉我怎么做吗?我在下面提出我的问题 $user = self::where('phone_number', '=', $username)->get()->first(); 可以将whereRaw与原始SQL表达式一

在我的数据库中,
country\u code
phone\u number
是两个不同的字段。用户正在输入一个包含国家代码和电话号码的字符串进行登录。为了验证这一点,我必须在雄辩的where子句中连接列
country\u code
phone\u number

有人能告诉我怎么做吗?我在下面提出我的问题

$user  = self::where('phone_number', '=', $username)->get()->first();

可以将whereRaw与原始SQL表达式一起使用,并将参数与第二个参数绑定

whereRaw("CONCAT(`country_code`, `phone_number`) = ?", [$username]);

可以将whereRaw与原始SQL表达式一起使用,并将参数与第二个参数绑定

whereRaw("CONCAT(`country_code`, `phone_number`) = ?", [$username]);

请尝试以下代码:

$user = self::whereRaw("CONCAT_WS(' ',`country_code`, `phone_number`) = ? ",  [$username])->get()->first();

第一个参数应该是粘合块。

请尝试以下代码:

$user = self::whereRaw("CONCAT_WS(' ',`country_code`, `phone_number`) = ? ",  [$username])->get()->first();

第一个参数应该是粘合块。

切勿将用户源变量放入原始表达式中!这就打开了SQL注入的大门。对,我的错就在那里。永远不要在原始表达式中放入用户源变量!这就打开了SQL注入的大门。是的,我的错就在那里。