1

laravel eloquent を使用して 2 つのテーブルを結合したいと考えています。これはmysqlで簡単に実行できましたが、これを使用する方法がわかりません。

thisというモデルdevice.phpには、次のメソッドが含まれています。

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

WifiClientConnection.phpしかし、という列を使用してモデルをリンクする必要がありますが、その列がありませmac_addressん。は、次のメソッドを使用して に変換されます。WifiClientConnectiondevice_uuidmac_addressdevice_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

助けてくれてありがとう

4

1 に答える 1