en interne. La méthode délègue l'accès aux méthodes membresRécemment, l'éditeur étudie ce qui est connu comme le meilleur framework au monde – Laravel. En fait, le framework d'apprentissage, c'est aussi l'idée de framework d'apprentissage ! Je souhaite enregistrer certaines de mes expériences d'apprentissage de Laravel sur mon blog. Vous êtes invités à suivre mes autres blogs et petits livres Github pour communiquer entre eux !
Version : Laravel 5.2
pour exécuter directement la requête SQL, et l'autre consiste à utiliser la méthode statique de la classe Model (en fait aussi l'implémentation de Facade, qui utilise l'accès statique pour accéder au modèle et utilise la magie
Base de données : mysql 5.7
PHP7.1 L'une consiste à utiliser la méthode statique de l'objet d'apparence
, vous pouvez également utiliser la liaison nommée DB
<.>callStatic
Obtenir toutes les colonnes de données de la table de données#
$results = DB::select('select * from users where id = ?', [1]);foreach ($results as $res) { echo $res->name; }
StdClass
Si vous n'avez besoin que de la valeur d'une colonne, vous pouvez utiliser la méthode value pour obtenir directement la valeur d'une seule colonne
$results = DB::select('select * from users where id = :id', ['id' => 1]);
$users = DB::table('users')->get(); foreach ($users as $user) { var_dump($user->name); }
$user = DB::table('users')->where('name', 'John')->first(); echo $user->name;
Par exemple, nous voulons interroger toutes les
valeurs de champ$email = DB::table('users')->where('name', 'John')->value('email');
DB::table('users')->chunk(100, function($users){ foreach ($users as $user) { // } });
false
, etc.title
$titles = DB::table('roles')->pluck('title');foreach ($titles as $title) { echo $title; }
pluck
Requête les colonnes spécifiées#
Collection pluck( string $column, string|null $key = null)
Si vous avez spécifié select, mais que vous souhaitez ajouter à nouveau des champs, utilisez la méthode addSelect
$roles = DB::table('roles')->pluck('title', 'name');foreach ($roles as $name => $title) { echo $title; }
count,max,min,avg,sum
Utiliser l'expression native
$users = DB::table('users')->count(); $price = DB::table('orders')->max('price'); $price = DB::table('orders')->where('finalized', 1)->avg('price');
peut injecter le fragment SQL requis dans la requête, mais cette méthode n'est pas recommandée si elle est mal utilisée, l'injection SQL. peut se produire
$users = DB::table('users')->select('name', 'email as user_email')->get();
Opération de jointure
$query = DB::table('users')->select('name');$users = $query->addSelect('age')->get();
$users = DB::table('users')->distinct()->get();
Left Join# Utilisez la méthode leftJoin pour effectuer une opération de jointure à gauche, les paramètres sont les mêmes que join $users =
DB::raw
Méthode de jointure avancée#
$users = DB::table('users') ->select(DB::raw('count(*) as user_count, status')) ->where('status', '<>', 1) ->groupBy('status') ->get();
Si vous souhaitez utiliser une colonne valeurs à comparer avec le tableau spécifié dans les contraintes de jointure, vous pouvez utiliser les méthodes Where et OrWhere
Opération Union$users = DB::table('users') ->join('contacts', 'users.id', '=', 'contacts.user_id') ->join('orders', 'users.id', '=', 'orders.user_id') ->select('users.*', 'contacts.phone', 'orders.price') ->get();
Pour utiliser l'opération Union, vous pouvez d'abord créer une requête , puis utilisez la méthode union pour lier la deuxième requête
DB::table('users') ->leftJoin('posts', 'users.id', '=', 'posts.user_id') ->get();
La méthode peut également être utilisée, avec les mêmes paramètres que union.
Conditions de requête Where
<p style="margin-top: 7px;">DB::table('users')<br/> ->join('contacts', function ($join) {<br/> $join->on('users.id', '=', 'contacts.user_id')->orOn(...);<br/> })<br/> ->get();<br/></p>
DB::table('users') ->join('contacts', function ($join) { $join->on('users.id', '=', 'contacts.user_id') ->where('contacts.user_id', '>', 5); }) ->get();
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!