1

我想使用 laravel eloquent 将 2 个表连接在一起。我可以在 mysql 中轻松做到这一点,但不知道如何使用它。

我有一个名为device.phpthis 的模型包含以下方法:

public function wifi_client_connection(){
    return $this->hasMany('UserFrosting\WifiClientConnection');
}

但我需要WifiClientConnection.php使用名为mac_addressWifiClientConnection没有该列的列链接模型,它有一个名为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_uuidmac_address这种关系才能正常工作

谢谢你的帮助

4

1 回答 1

0

我会添加一个包含转换值的列,然后您可以创建关系。

public function device(){

    return $this->belongsTo('UserFrosting\WifiClientConnection', 'device_uuid', 'new_column_with_converted_value');
}
于 2017-12-13T15:26:04.737 回答