jeudi 19 novembre 2020

Database Query taking long time and then failed in laravel 5.8

I am using laravel query which is taking long time and then failed. I tried many ways but nothing worked.

This is the query

$consignments = Consignment::where('customer_id', $invoice->customer_id)->doesnthave('invoice_charges')->get();

here is consignment model which is having Many relationships

<?php

namespace App\Models\Admin;

use Illuminate\Database\Eloquent\Model;

class Consignment extends Model
{
    protected $table = 'consignments';
    /**
     * @var array
     */
    protected $guarded = [];

    /**
     * @var array
     */
    protected $hidden = [
        'created_at', 'updated_at'
    ];

    public function pickupConsignment()
    {
        return $this->hasOne('App\Models\Admin\PickupDeliveryConsignment', 'pickup_consignment_id');
    }
    public function deliveryConsignment()
    {
        return $this->hasOne('App\Models\Admin\PickupDeliveryConsignment', 'delivery_consignment_id');
    }

    public function customers()
    {
        return $this->belongsTo('App\Models\Admin\Customer', 'customer_id');
    }

    public function income_charge_schemes()
    {
        return $this->hasOne('App\Models\Admin\IncomeChargeScheme', 'consignment_id');
    }

    
}

As you see consignment model has many relationships but i think query fetch all the relationships data with it .

When I use toBase() It gets load quickly but it doesn't fetch relationship which is required

here is the query with toBase()

$consignments = Consignment::where('customer_id', $invoice->customer_id)->doesnthave('invoice_charges')->toBase()->get();

I think this relationship which is creating issue

I also tried cursor() function but didn't work ..

How i can optimize this query any suggestion?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire