Dans Laravel, la méthode "DB::raw()" est utilisée pour les requêtes SQL complexes. Cette méthode peut traiter l'ensemble de résultats interrogé comme une table temporaire, puis utiliser la syntaxe du générateur de requêtes de Laravel pour le traitement de la pagination. "DB::raw('fonction ou champ');".
L'environnement d'exploitation de cet article : système Windows 10, Laravel version 6, ordinateur Dell G3.
J'ai rencontré un problème dans le projet. Pour les requêtes SQL complexes, il est très gênant d'utiliser le constructeur de requêtes de Laravel. Diverses conditions de requête sont regroupées dans une longue liste. , ce qui est déroutant. Cela fait mal ; alors je veux utiliser des instructions SQL natives pour interroger, mais je ne peux pas utiliser la méthode de pagination paginate() de Laravel pour le moment, la méthode DB::raw() est pratique ! Le principe de la syntaxe est de traiter l'ensemble de résultats de votre requête comme une table temporaire, puis d'utiliser la syntaxe du générateur de requêtes de Laravel pour le traitement de la pagination
Exemple 1 :
$users = DB::table('users') ->select(DB::raw('count(*) as user_count, status')) ->where('status', '<>', 1) ->groupBy('status') ->get();
Exemple 2 :
DB::table('someTable') ->selectRaw('count(*), min(some_field) as someMin, max(another_field) as someMax') ->get();
Exemple 3 :
DB::table('someTable')->select( array( DB::raw('min(some_field) as someMin'), DB::raw('max(another_field) as someMax'), DB::raw('COUNT(*) as `count`') ) )->get()
; Exemple 4 :
SELECT (CASE WHEN (gender = 1) THEN 'M' ELSE 'F' END) AS gender_text FROM users; $users = DB::table('users') ->select(DB::raw(" name, surname, (CASE WHEN (gender = 1) THEN 'M' ELSE 'F' END) as gender_text") );
【Recommandation associée :tutoriel vidéo laravel】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!