簡體   English   中英

如何通過使用laravel 5 eloquent模型獲得第三表基礎上的第一個表記錄

[英]How can i get First table records on base of third table by using laravel 5 eloquent model

請求的表格如下:

**User Table**
id, name
1, vehicle person name
2, renter person name

**Vehicle Table**
id, user_id, vehicle_name
1, 1, My car

**Booking Table**
id, renter_id, vehicle_id
1, 2, 1

用戶模型

public function renter() {
    return $this->hasMany(Booking::class, 'renter_id');
}

public function vehicleBook() {
    return $this->hasManyThrough(Booking::class, Vehicle::class);
}

預訂模式

public function user() {
        return $this->belongsTo(User::class, 'renter_id');
 }

車型

public function user() {
        return $this->belongsTo(User::class);
    }

我的控制器

$renters = Auth::user()->renter()->get();
$owners = Auth::user()->vehicleBook()->get();

// In Loop
$renter->user->name; // renter person name
$owner->user->name; // vehicle person name

結果

在預訂表的基礎上,我希望使用Laravel 5 ORM獲得租房者和車輛人名。

我已經使用兩個調用完成了,但我想知道是否有任何方法可以使用一個調用獲得結果?

你可以這樣做。 它會減少行數,但會增加查詢次數。

$user = User::find(Auth::user()->id)->with('renters')->with('vehicleBooks')->first();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM