Я, вероятно, не выбрал наиболее описательное название, но это так сложно объяснить. У меня есть таблица IPs с первичным ключом целого числа без знака, ip-адреса. Прежде чем хранить ip, я передаю ip через php inet_ * функции. При выполнении первичного ключа, ищущего в моей модели IP, ip, переданный в методе find()
, должен быть закодирован до его числового значения.Laravel Eloquent: Передача значения find() в функции
Ниже приведен пример поиска: IP::find('10.0.2.2')
, который должен возвращать коллекцию. Тем не менее, он отправляется в запрос как строка, а не целое число. Что бы я хотел произойти в фоновом режиме:
IP::find(inet_pton('10.0.2.2'))
без необходимости вставлять каждую функцию вручную каждый раз. Я знаю, вы должны думать, что я такой ленивый, но я просто пытаюсь найти самый простой способ сделать что-то, потому что это то, что программирование, не так ли?
Вот мой IP модель:
class IP extends Eloquent {
protected $table = 'ips';
protected $connection = 'game';
protected $primaryKey = 'ip';
public $timestamps = false;
public $incrementing = false;
public function getIpAttribute($value) {
return inet_ntop($value);
}
public function setIpAttribute($value) {
$this->attributes['ip'] = inet_pton($value);
}
public function getUuidAttribute($value) {
return bin2hex($value);
}
public function setUuidAttribute($value) {
$this->attributes['UUID'] = hex2bin($value);
}
}
и вот описание таблицы, если вам нужно:
+-------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| UUID | binary(16) | NO | | NULL | |
| ip | int(10) unsigned | NO | PRI | NULL | |
+-------+------------------+------+-----+---------+-------+
я собираюсь смотреть на IPs вернуть UUID из пользователь. В основном я пытаюсь угадать, если они просматривают мой сайт без регистрации