Fragen zur verwandten Abfrage mehrerer Bedingungen in Laravel?

PHP中文网
Freigeben: 2023-03-01 08:00:01
Original
4496 Leute haben es durchsucht

Bezüglich des damit verbundenen Abfrageproblems mehrerer Bedingungen in Laravel:

Tabelleorder Bestelltabelle :

  • idSelbstinkrementierende ID

  • order_idBestellnummer

  • paid_date Zahlungszeitpunkt

Tabelleorder_product Produkttabelle bestellen:

  • id Auto- Inkrement-ID

  • fk_order_id Bestellnummer, Fremdschlüssel

  • product_name Name

  • product_numberNummer

  • quantityMenge

Tabellenbeziehung:

order - 1:n - order_product
Nach dem Login kopieren

Anforderungen:
Implementieren Sie das folgende native SQL über Laravel Eloquent ORM:

select * from order as A inner join order_product as B on A.order_id=B.fk_order_id 
where (A.paid_date between '2016-01-01' and '2016-09-01') and B.product_name like '%Apple iPhone%'
Nach dem Login kopieren

Ich habe das Handbuch mehrmals gelesen und versucht, es zu tun, aber Derzeit implementieren wir B nur über whereHas. Dieser Teil der Bedingung kann nicht ausgeführt werden, wenn die Bedingung in beiden Tabellen vorhanden ist.
Ich hoffe, dass Laravel-Senioren mir einen Rat geben können, danke!

PS. Ergänzung:
filtert und ruft derzeit die Listenseite ab und es besteht Bedarf an Paginierung.

Lösung:

class Order extends Model
{
    public function scopeProducts($query)
    {
        return $query->join('order_product', function($join) {
            $join->on('order.order_id', '=', 'order_product.fk_order_id');
        });
    }
}
Nach dem Login kopieren
Order::products()->where(....);
Nach dem Login kopieren

Das Obige bezieht sich auf das verwandte Abfrageproblem mehrerer Bedingungen in Laravel, verwandte Bitte zahlen Sie Beachten Sie für den Inhalt die chinesische PHP-Website (www.php.cn)!

Verwandte Artikel:

Laravel-bezogene Abfrage erhält nur einen Teil der Daten des verwalteten Objekts

Laravel-bezogenes Abfrageproblem

Laravel-bezogene Abfrageartikel und Artikelautoren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage