Laravel Eloquent将2张桌子连在一起

问题描述 投票:1回答:1

我想用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才能使这种关系发挥作用

谢谢你的帮助

php mysql laravel eloquent userfrosting
1个回答
0
投票

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

public function device(){

    return $this->belongsTo('UserFrosting\WifiClientConnection', 'device_uuid', 'new_column_with_converted_value');
}
© www.soinside.com 2019 - 2024. All rights reserved.