第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Eloquent Laravel 從多個表中獲取數(shù)據(jù)

Eloquent Laravel 從多個表中獲取數(shù)據(jù)

PHP
MMTTMM 2022-12-30 17:04:10
我花了兩天時間試圖解決這個問題,但我不知道如何解決。我有五張桌子產(chǎn)品類別類別_產(chǎn)品命令訂單_產(chǎn)品從視圖中,單擊類別按鈕我必須獲取他訂購的所有具有相關(guān)類別的產(chǎn)品。我有當(dāng)前的模型:產(chǎn)品型號class Product extends Model{    public function categories() {        return $this->belongsToMany('App\Category');    }    public function orders() {        return $this->belongsTo('App\Order');    }}品類模型public function products() {    return $this->belongsToMany('App\Product');}訂貨型號public function products() {    return $this->belongsToMany('App\Product');}現(xiàn)在的問題是我不知道如何從當(dāng)前表中獲取數(shù)據(jù)。當(dāng)我按下一個按鈕時,我能夠從Product表中獲取類別,但我想從Ordered_Products. 我真的想不通怎么辦。這樣我就可以從 Product 中獲取所有類別if (request()->category) {    $products = Product::with('categories')->whereHas('categories', function ($query) {        $query->where('slug', request()->category);    })->get();}相反,我可以獲取訂購的產(chǎn)品。$products = DB::table('order_product')    ->join('products', 'order_product.product_id','=', 'products.id')    ->where('order_product.user_id','=',$user_id)    ->get();對于后者,肯定有更好的方法。如果這是一個愚蠢的問題,我很抱歉,但我對這個框架還很陌生。我正在使用 Laravel 7.2。
查看完整描述

2 回答

?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個贊


使用 whereHas 兩次解決:


$products = Product::with('categories')->whereHas('categories',function($query){

                $query->where('slug',request()->category);

            })->whereHas('orders',function($query){

                $query->where('orders.user_id',Auth::id());

            })->get();


查看完整回答
反對 回復(fù) 2022-12-30
?
楊魅力

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個贊

基本上 Eloquent 模型不鼓勵連接表來檢索數(shù)據(jù)。它應(yīng)該僅用于過濾結(jié)果(因此您需要使用刪除其他表的字段->select('original_table.*'))


在這種情況下,您應(yīng)該首先簡單地檢索categories。然后使用關(guān)系屬性訪問檢索相關(guān)數(shù)據(jù)。


例如


$categories = Category::query()

    ->with('products')

    ->where('slug', request('category'))

    ->get();

$products = $categories->flatMap->products;

$pivots = $products->map->pivot;


查看完整回答
反對 回復(fù) 2022-12-30
  • 2 回答
  • 0 關(guān)注
  • 127 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號