我想使用laravel eloquent将2个表连接在一起。我可以轻松地在mysql中执行此操作但不知道使用它。
我有一个名为device.php
的模型,它包含以下方法:
public function wifi_client_connection(){
return $this->hasMany('UserFrosting\WifiClientConnection');
}
但是我需要使用名为WifiClientConnection.php
的列链接mac_address
模型,但WifiClientConnection
没有列,它有一个名为device_uuid
的列。 mac_address
使用以下方法转换为device_uuid
:
public function getDeviceUUID(){
return hex2bin(md5($this->mac_address . $this->number));
}
在MySQL中,我将这两个表连接在一起:
LEFT OUTER JOIN device ON wifi_client_connection.device_uuid = UNHEX(MD5(CONCAT(device.mac_address, device.number)))
如何使用Laravel Eloquent做类似的事情。
我还需要相反的关系,所以在WifiClientConnection.php
模型中我有这个方法:
public function device(){
return $this->belongsTo('UserFrosting\WifiClientConnection');
}
但我需要将device_uuid
转换为mac_address
才能使此关系正常工作
感谢您的帮助
答案 0 :(得分:0)
我会添加一个包含转换值的列,然后您可以创建关系。
public function device(){
return $this->belongsTo('UserFrosting\WifiClientConnection', 'device_uuid', 'new_column_with_converted_value');
}