簡體   English   中英

雄辯的口才在Laravel中如此緩慢

[英]Eloquent query so slow in Laravel

我正在Laravel 5.3.19中做一個應用程序,問題是,我正在用Eloquent進行查詢,但是它太慢了,我讀了一些論壇,好像我做錯了什么,我嘗試在使用命令php artisan tinker的控制台並且查詢工作正常,問題是當我從瀏覽器登錄到在routes/web.php創建的URL時,頁面只是無限期加載,有時它給了我超時錯誤。 有人知道可能是什么問題嗎?

這是我的文件:

  • 路線/ web.php

Route::get('/area_products/listProductsByArea/{area}','AreaProductController@orderProductsListByArea');    
  • Http / controllers / AreaProductController.php(控制器)
public function orderProductsListByArea($area){
    $array_products = [];
    $products = AreaProduct::where('area_id', $area)->get();
    foreach ($products as $data) {
        $product = [
            'id' => $data->id,
            'price' => $data->price,
            'product_id' => $data->product->id,
            'product_name' => $data->product->name,
            'product_category' => $data->product->category->name,
            'product_reference' => $data->product->reference,
            'product_code' => $data->product->code,
            'area_id' => $data->area_id
        ];
        array_push($array_products, $product);
    }
}    
  • Http / AreaProduct.php(模型)
namespace App;
use Illuminate\Database\Eloquent\Model;
class AreaProduct extends Model{
    public $table = "products_area";
    public function product(){
        return $this->belongsTo('App\Product');
    }
    public function area(){
        return $this->belongsTo('App\Area');
    }
}

注意:此查詢應該返回接近700個結果,我注意到當我在執行諸如'product_name' => $data->product->name類的關系時,會產生此問題。 難道我做錯了什么?

謝謝你的幫助。

由於您使用的是雄辯的關系,因此您不能這樣做:

public function orderProductsListByArea($area){
    // Load the Area products with the 'product' relationship (eager loading)
    $products = AreaProduct::where('area_id', $area)
        ->with('product')
        ->get();

    // Return the list of products
    return $products;
}

在沒有看到您的其余數據/數據庫的情況下,我很確定應該返回您想要的內容。

暫無
暫無

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

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