Laravel Eloquent获取具有双归属关系的模型

时间:2020-09-05 16:15:14

标签: laravel eloquent laravel-7 eloquent-relationship

我有一个模型ToGoSubscriptions,它具有与其他两个模型PhoneNumber和ToGoDevice的belongsTo关系。

PhoneNumber和ToGoDevice都有许多ToGoSubscription。

我有一个PhoneNumber和ToGoDevice,我需要做的是检索属于给定PhoneNumber和ToGoDevice的ToGoSubscription。如果一切正常,这应该始终是一条记录。

Relationships Image

这些是我在每个表格中都有的相关列:

电话号码表:

throw null;

to_go_devices 表:

id
name            
number          
description

to_go_subscriptions 表:

id
name            
mac         
IP

到目前为止,我已经尝试了这两个代码段,但获得的结果并不理想。

id
phone_number_id         
to_go_subscription_type_id      
to_go_device_id     
expiry_date

ToGoSubscription::where('phone_number_id', $phoneDetails->id)->with(['toGoDevice' => function($q){
        $q->where('to_do_devices.id', '=',  $deviceId);
    }])->get();

我需要做的就是获得一个属于$ phoneNumber和$ mac的订阅。我可以从phone_numbers表中获取$ phoneDetails,并使用to_go_devices表中的$ mac获取$ deviceDetails。

我真的无法用雄辩的方式来获得属于我拥有的PhoneNumber和ToGoDevice的订阅的雄辩方式。我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用以下位置的链:

$value= ToGoSubscription:: where('phone_number_id', $phoneDetails->id)->where('to_go_device_id', $deviceId) ->get();