我想用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中我将2个表连接在一起,如下所示:
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
才能使这种关系发挥作用
谢谢你的帮助
我会添加一个包含转换值的列,然后您可以创建关系。
public function device(){
return $this->belongsTo('UserFrosting\WifiClientConnection', 'device_uuid', 'new_column_with_converted_value');
}