Apprenez à générer facilement des instructions SQL complètes dans Laravel
Jul 17, 2020 pm 01:18 PM下面由Laravel教程欄目給大家介紹Laravel中輕松容易的輸出完整的SQL語句的方法,希望對需要的朋友有所幫助!
laravel 中自帶的查詢構(gòu)建方法
toSql
得到的 sql 語句并未綁定條件參數(shù),類似于這樣select * from
userswhere
id= ?
,所以寫了個擴(kuò)展包 laravel-dump-sql ,可以獲取完整的 sql 語句。
源碼
安裝
$ composer require guanguans/laravel-dump-sql -v
發(fā)布服務(wù)
$ php artisan vendor:publish --provider="Guanguans\\LaravelDumpSql\\ServiceProvider"
使用
安裝成功后查詢構(gòu)建器會新增
toRawSql
、dumpSql
、ddSql
三個方法
// 獲取 SQL User::where('id', 1)->toRawSql(); DB::table('user')->where('id', 1)->toRawSql(); // 打印 SQL User::where('id', 1)->dumpSql(); DB::table('user')->where('id', 1)->dumpSql(); // 打印 SQL 并退出 User::where('id', 1)->ddSql(); DB::table('user')->where('id', 1)->ddSql();
自定義方法名稱
發(fā)布配置文件
$ php artisan vendor:publish --tag=laravel-dump-sql
config/dumpsql.php
文件中配置方法名稱既可
<?php return [ /* * Get sql statement. */ 'to_raw_sql' => 'Your favorite method name', /* * Print SQL statements. */ 'dump_sql' => 'Your favorite method name', /* * Print SQL statements and exit. */ 'dd_sql' => 'Your favorite method name', ];
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Créer un tableau de références pour enregistrer les relations de recommandation, y compris les références, les références, les codes de recommandation et le temps d'utilisation; 2. Définir l'appartenance et les relations HasMany dans le modèle d'utilisateur pour gérer les données de recommandation; 3. Générer un code de recommandation unique lors de l'enregistrement (peut être implémenté via des événements modèles); 4. Capturez le code de recommandation en interrogeant les paramètres lors de l'enregistrement, établissez une relation de recommandation après vérification et empêchez l'auto-recommandation; 5. Déclencher le mécanisme de récompense lorsque les utilisateurs recommandés terminent le comportement spécifié (ordre d'abonnement); 6. Générer des liens de recommandation partageables et utiliser les URL de signature Laravel pour améliorer la sécurité; 7. Afficher les statistiques de recommandation sur le tableau de bord, telles que le nombre total de recommandations et de nombres convertis; Il est nécessaire de s'assurer que les contraintes de base de données, les séances ou les cookies sont persistées,

Installer le pilote de base de données correspondant; 2. Utilisez Connect () pour se connecter à la base de données; 3. Créez un objet de curseur; 4. Utilisez EXECUTE () ou Execumany () pour exécuter SQL et utiliser une requête paramétrée pour empêcher l'injection; 5. Utilisez fetchall (), etc. pour obtenir des résultats; 6. commit () est requis après modification; 7. Enfin, fermez la connexion ou utilisez un gestionnaire de contexte pour le gérer automatiquement; Le processus complet garantit que les opérations SQL sont s?res et efficaces.

Pour calculer la différence entre deux dates, vous devez sélectionner la fonction correspondante en fonction du type de base de données: 1. Utilisez DADAFIF () pour calculer la différence de jour dans MySQL, ou spécifiez les unités telles que l'heure et la minute dans TimeStampDiff (); 2. Utilisez DADAIFF (DATE_PART, START_DATE, END_DATE) dans SQLServer et spécifiez les unités; 3. Utilisez la soustraction directe dans PostgreSQL pour obtenir la différence de jour, ou utilisez l'extrait (dayFromage (...)) pour obtenir des intervalles plus précis; 4. Utilisez la fonction Julianday () pour soustraire la différence de jour dans SQLite; Faites toujours attention à la commande de date

Le modèle de référentiel est un modèle de conception utilisé pour découpler la logique métier à partir de la logique d'accès aux données. 1. Il définit les méthodes d'accès aux données via des interfaces (contrat); 2. Les opérations spécifiques sont implémentées par la classe de référentiel; 3. Le contr?leur utilise l'interface par injection de dépendance et ne contacte pas directement la source de données; 4. Les avantages incluent un code soigné, une testabilité solide, une maintenance facile et une collaboration d'équipe; 5. Applicable aux projets moyens et grands, les petits projets peuvent utiliser directement le modèle.

AccessorsandMutatorsInLaravel'SeloventoralLowyoutOrOrorManipulateModelatRributes Pendant ce temps

Créer un projet Laravel et configurer l'environnement de la base de données; 2. Utilisez l'artisan pour générer des modèles, des migrations et des contr?leurs; 3. Définir le routage des ressources API dans API.php; 4. Implémentez les méthodes d'addition, de suppression, de modification et de requête dans le contr?leur et d'utiliser la vérification de la demande; 5. Installez Laravelsanctum pour implémenter l'authentification de l'API et protéger les routes; 6. Unifier le format de réponse JSON et gérer les erreurs; 7. Utilisez Postman et d'autres outils pour tester l'API et enfin obtenir un Restulapi complet et extensible.

LaravelImplementsThemvcpatternByusingModelsfordatAraman Management, ControversforBusinessLogic, andViewsForpresentation.1) Modèles InsistaravelAreaPowerFulorMshandlingDataAndrelations.2)

Pour optimiser les performances de OrderBy dans SQL, vous devez d'abord comprendre son mécanisme d'exécution et utiliser rationnel de l'index et de la structure de requête. Lorsque le champ de tri n'a pas d'index, la base de données déclenchera "FilesTort", consommant beaucoup de ressources; Par conséquent, le tri direct de grandes tables doit être évité et la quantité de données triées doit être réduite dans les conditions. Deuxièmement, l'établissement d'un indice de correspondance pour les champs de tri peut considérablement accélérer les requêtes, telles que la création d'index de commande inverse dans MySQL 8.0 pour améliorer l'efficacité. De plus, la pagination profonde (telle que Limit1000, 10) doit être utilisée à la place avec une pagination de curseur basée sur l'indice (comme le cas échéant> 12345) pour sauter des analyses non valides. Enfin, la combinaison de la mise en cache, de l'agrégation asynchrone et d'autres moyens peut également optimiser davantage les performances de tri dans les scénarios d'ensemble de données importants.
