Heim > PHP-Framework > Laravel > Laravel-Abfragen müssen nicht mehr viele Wenn-Sonst-Urteile schreiben!

Laravel-Abfragen müssen nicht mehr viele Wenn-Sonst-Urteile schreiben!

藏色散人
Freigeben: 2021-04-08 08:42:09
nach vorne
2489 Leute haben es durchsucht

Die folgende Tutorial-Kolumne von laravel stellt Ihnen vor: „Laravel-Abfragen erfordern nicht mehr das Schreiben vieler ifelse-Urteile, konfigurieren Sie sie einfach.“ Ich hoffe, dass es Freunden, die es benötigen, hilfreich sein wird!

Laravel-Abfragen müssen nicht mehr viele Wenn-Sonst-Urteile schreiben!

Hintergrund

Das Hauptgeschäft des Unternehmens wird mithilfe der PHP-Sprache und des Laravel-Frameworks entwickelt. Bei einigen Listenfilterabfragen wird häufig der folgende Code angezeigt, der schwer zu warten ist:

        //若干代码 根据参数执行不同where
        if (request('has_score')) {
            $article = $article->with(['scores' => function ($query) {
                $query->where('type', self::TYPE);
                $query->with('user');
            }]);
        }
        if (has_module('Audit')) {
            $article = $article->with(['auditing' => function ($query) {
                $query->orderBy('id', 'desc');
            }]);
        }
        $article = $article->with(['videos' => function ($query) {
            $query->where('type', VIDEO);
        }])->with(['audios' => function ($query) {
            $
            query->where('type', AUDIO);
        }]);
Nach dem Login kopieren

Lösung

Wenn diese Abfragen möglich sind konfiguriert Stehen Sie auf und fragen Sie die Daten gemäß der Konfiguration ab, anstatt direkt zu beurteilen, ob sie im Code enthalten sind, damit der Code eleganter wird. Ich entwickle selbst ein Servicepaket Laravel-Query-Builder.

laravel-query-builder ist das Laravel-Framework zum Ausführen des Abfragebedingungs-Builder-Dienstpakets gemäß der vorhandenen Konfiguration.

Install

composer require zyimm/laravelquery-builder
Nach dem Login kopieren

Require

    {
      "require": {
          "php": ">=7.0",
          "fideloper/proxy": "^4.0",
          "laravel/framework": ">=5.5"
        }  
    }
Nach dem Login kopieren

Usage

/**
// 目前支持条件操作符
    '=',
    '',
    '>',
    '>=',
    ' 20,
    'user_id'=> 'zyimm',
    'user_name' => "zyimm,12"
];
//配置数据库字段查询操作
$condition =[
    '=' => [
        'log_id'
    ],
    'not_in' => [
        'user_id'
    ],
    'between' => [
        'user_name'
    ],
    'full_like' => [
        'user_id'
    ],
    '' => [
        'user_id'
    ],
    '>' => [
        'user_id'
    ]
];
DB::enableQueryLog();
//model
\App\Models\Log::query()
    ->where(function ($query) use ($build, $data, $condition){
        $build->buildQueryWhere($data ,$condition, $query);
    })->get();
dd(DB::getQueryLog());
Nach dem Login kopieren

generiert den SQL-Abfragedatensatz wie unten gezeigt:
Laravel-Abfragen müssen nicht mehr viele Wenn-Sonst-Urteile schreiben!

Tipps:
'in','not_in','between','not_between'Diese Bezeichner unterstützen Arrays und Zeichenfolgen, und Zeichenfolgen können optional „,“ und „.“ als Trennzeichen verwenden.

Es ist so einfach, dass es unseren Code eleganter machen kann!

Projektadresse

Tipp: laravel-query-builderp (https://github.com/zyimm/laravel-query-builder)
Verwandte Empfehlungen:
Die neuesten fünf Laravel-Video-Tutorials

Das obige ist der detaillierte Inhalt vonLaravel-Abfragen müssen nicht mehr viele Wenn-Sonst-Urteile schreiben!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
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