簡體   English   中英

Laravel 4-從另一個表的字段中獲取價值並加入查詢

[英]Laravel 4 - Get value from another table's field and join to query

我在嘗試處理此查詢時遇到很多麻煩。 我是Laravel 4的新手,所以輕松一點。

我有2張桌子。 上傳和相冊。 目前,我正在嘗試根據用戶的ID輸出所有相冊,並獲取與此相冊相關聯的上傳的最新縮略圖。

這是我當前正在使用的代碼:

DB::table("albums")
->select("albums.*","uploads.thumbnail")
->join("uploads", "uploads.albumid", "=", "albums.id")
->where("albums.userid", "=", Auth::user()->id)
->orderBy("uploads.id", "ASC")
->get()

輸出錯誤。 輸出顯示的內容幾乎相反。 它遍歷上傳而不是專輯,並檢索專輯表的第一條記錄。

(
[0] => stdClass Object
    (
        [id] => 1
        [userid] => 1
        [private_code] => PJ3r6Ps3c5rRrceKRLvWmpk4o5GvHKHk7QCUnRkTmlwUnxnjmL9kVaOa1N4Tm124
        [slug] => album-test-1
        [name] => Album test 1
        [description] => Album test 1
        [privacy] => Public
        [created_at] => 
        [updated_at] => 
        [thumbnail] => 6s/zj/4e/6SZj4Ev409fU2b3NYHzgW7O9Jn3MFeDb_thumbnail.jpg
    )

[1] => stdClass Object
    (
        [id] => 1
        [userid] => 1
        [private_code] => PJ3r6Ps3c5rRrceKRLvWmpk4o5GvHKHk7QCUnRkTmlwUnxnjmL9kVaOa1N4Tm124
        [slug] => album-test-1
        [name] => Album test 1
        [description] => Album test 1
        [privacy] => Public
        [created_at] => 
        [updated_at] => 
        [thumbnail] => 17/zs/11/17zs11CwBKsPilpeMVjH7A7gTEcRxb4P_thumbnail.jpg
    )
)

我想遍歷專輯,同時檢索該專輯的最近上傳縮略圖以用作該專輯的縮略圖。

口才更好的一些工作。 由於此表不比較2個聯接表之間的字段,因此由於Eloquent使用2個單獨的SELECT查詢,因此您將獲得更好的性能和更輕松的時間。

專輯型號:

public function uploads() { return $this->hasMany('Upload', 'albumId') }

上傳模型:

public function album() { return $this->belongsTo('Album', 'albumId') }

查詢:

$albums = Album::with(['uploads' => function($query){
    $query->orderBy('created_at', 'desc')->take(1);
}])->where('userId', Auth::user()->id)->get();

使用以下方法在視圖中獲取縮略圖:

@foreach($albums as $album)
    {{ $album->uploads->first()->thumbnail }}
@endforeach

暫無
暫無

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

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