Laravel varbinary(ip)在哪里不起作用

时间:2019-03-16 20:02:45

标签: php mysql laravel ip varbinary

我正在使用varbinary(16)将ips存储在数据库中,如此处https://stackoverflow.com/a/24270808/5717102所述。

我要使用inet_ntopinet_pton来转换为人类可读和二进制格式。 效果很好,但不适用于where查询。

MyModel::where('ip', $ip)->get();

我想念的东西不行吗?我已经在Google上搜索过,但是找不到任何有用的信息。

2 个答案:

答案 0 :(得分:1)

访问器和变异器不适用于查询。因此,您应该以{{1​​}}

的身份访问它

如果您想将其提取出来,则可以进一步创建一个作用域并将逻辑移至模型。

MyModel::where('ip', inet_pton($ip))->get()

并以

访问

public function scopeWhereIp($query, $ip) { return $query->where('ip', inet_pton($ip)); }

答案 1 :(得分:0)

尝试一下

MyModel::where('ip','=',$ip)->get();