LaravelフレームワークデータベースのCURD操作とコヒーレント操作の概要、laravelcurd
1. を選択します
テーブル内のすべての行を取得します
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->get();
foreach ($users として $user)
{
var_dump($user->name);
}
テーブルから単一行を取得します
コードをコピーします コードは次のとおりです:
$user = DB::table('users')->where('name', 'John')->first();
var_dump($user->name);
単一列の行を取得する
コードをコピーします コードは次のとおりです:
$name = DB::table('users')->where('name', 'John')->pluck('name');
列値のリストを取得する
コードをコピーします コードは次のとおりです:
$roles = DB::table('roles')->lists('title');
このメソッドは配列のタイトルを返します。カスタムキー列を指定して配列を返すこともできます
コードをコピーします コードは次のとおりです:
$roles = DB::table('roles')->lists('title', 'name');
Select句を指定する
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->select('name', 'email')->get();
$users = DB::table('users')->distinct()->get();
$users = DB::table('users')->select('name as user_name')->get();
既存のクエリに追加された Select 句 $query = DB::table('users')->select('name');
コードをコピーします コードは次のとおりです:
$users = $query->addSelect('age')->get();
どこ
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->where('votes', '>', 100)->get();
または
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->where('votes', '>', 100)->orWhere('name', 'John')->get();
その間
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->whereBetween('votes', array(1, 100))->get();
中間ではない場所
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->whereNotBetween('votes', array(1, 100))->get();
配列のどこにあるのか
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->whereIn('id', array(1, 2, 3))->get();
$users = DB::table('users')->whereNotIn('id', array(1, 2, 3))->get();
Where Null を使用して値が設定されていないレコードを検索する
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->whereNull('updated_at')->get();
並べ替え、グループ化、および所有
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->orderBy('name', 'desc')->groupBy('count')->having('count', '>', 100) ->get();
オフセットとリミット
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->skip(10)->take(5)->get();
2.接続
参加
クエリ ビルダーを使用して結合ステートメントを作成することもできます。以下の例を見てください:
基本的な結合ステートメント
コードをコピーします コードは次のとおりです:
DB::table('ユーザー')
->join('contacts', 'users.id', '=', 'contacts.user_id')
->join('orders', 'users.id', '=', 'orders.user_id')
->select('users.id', 'contacts.phone', 'orders.price')
->get();
左結合ステートメント
コードをコピーします コードは次のとおりです:
DB::table('ユーザー')
->leftJoin('posts', 'users.id', '=', 'posts.user_id')
->get();
DB::table('ユーザー')
->join('連絡先', function($join)
{
$join->on('users.id', '=', 'contacts.user_id')->orOn(...);
})
->get();
DB::table('ユーザー')
->join('連絡先', function($join)
{
$join->on('users.id', '=', 'contacts.user_id')
->where('contacts.user_id', '>', 5);
})
->get();
3. グループ化
場合によっては、「exists」やネストされたパラメーター グループなど、より高度な where 句の作成が必要になる場合があります。 Laravel クエリビルダーは以下を処理できます:
コードをコピーします コードは次のとおりです:
DB::table('ユーザー')
->where('名前', '=', 'ジョン')
->orWhere(関数($クエリ)
{
$query->where('票', '>', 100)
->where('タイトル', '<>', '管理者');
})
->get();
上記のクエリは次の SQL を生成します:
コードをコピーします コードは次のとおりです:
名前 = 'ジョン' または (投票数 > 100 とタイトル
のユーザーから * を選択)
<>「管理者」)
ステートメントが存在します
DB::table('ユーザー')
->whereExists(function($query)
{
$query->select(DB::raw(1))
->from('注文')
->whereRaw('orders.user_id = users.id');
})
->get();
上記のクエリは次の SQL を生成します:
コードをコピーします コードは次のとおりです:
存在するユーザーから * を選択 (
order.user_id = users.id の注文から 1 つを選択します
)
4. 集計
クエリビルダーは、統計、最大、最小、平均、合計などのさまざまな集計方法も提供します。
集計メソッドの使用
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->count();
$price = DB::table('orders')->max('price');
$price = DB::table('orders')->min('price');
$price = DB::table('orders')->avg('price');
$total = DB::table('users')->sum('votes');
生の表現
場合によっては、プリミティブな式を含むクエリを使用する必要があるかもしれません。これらの式はクエリ文字列に挿入されるため、SQL インジェクション ポイントを作成しないように注意してください。生の式を作成するには、DB:rawmethod:
を使用します。
生の式の使用
コードをコピーします コードは次のとおりです:
$users = DB::table('users')
->select(DB::raw('count(*) as user_count, status'))
->where('ステータス', '<>', 1)
->groupBy('ステータス')
->get();
列の値を増減する
コードをコピーします コードは次のとおりです:
DB::table('users')->increment('votes');
DB::table('users')->increment('votes', 5);
DB::table('users')->decrement('votes');
DB::table('users')->decrement('votes', 5);
追加の列更新を指定することもできます:
コードをコピーします コードは次のとおりです:
DB::table('users')->increment('votes', 1, array('name' => 'John'));
インサート
テーブルにレコードを挿入
コードをコピーします コードは次のとおりです:
DB::table('ユーザー')->insert(
array('email' => 'john@example.com', 'votes' => 0)
);
自動的に増加したIDを持つテーブルにレコードを挿入します
テーブルに自動インクリメント ID フィールドがある場合は、insertGetId を使用してレコードを挿入し、ID を取得します:
コードをコピーします コードは次のとおりです:
$id = DB::table('users')->insertGetId(
)
array('email' => 'john@example.com', 'votes' => 0)
);
注: PostgreSQL の insertGetId メソッドを使用する場合、自動インクリメント列の名前は「id」であることが想定されます。
テーブルに複数のレコードを挿入します
コードをコピーします コードは次のとおりです:
DB::table('users')->insert(array(
)
array('email' => 'taylor@example.com', 'votes' => 0),
array('email' => 'dayle@example.com', 'votes' => 0),
));
4. アップデート
テーブル内のレコードを更新する
コードをコピーします コードは次のとおりです:
DB::table('ユーザー')
->where('id', 1)
->update(array('votes' => 1));
五、削除
テーブル内のレコードを削除します
コードをコピーします コードは次のとおりです:
DB::table('users')->where('votes', '<', 100)->delete();
テーブル内のすべてのレコードを削除します
コードをコピーします コードは次のとおりです:
DB::table('users')->delete();
テーブルを削除する
コードをコピーします コードは次のとおりです:
DB::table('users')->truncate();
シックス、ユニオン
クエリ ビルダーは、2 つのクエリを「結合」する簡単な方法も提供します:
コードをコピーします コードは次のとおりです:
$first = DB::table('users')->whereNull('first_name');
$ユーザー =
DB::table('users')->whereNull('last_name')->union($first)->get();
unionAll メソッドも利用可能で、同じメソッド シグネチャを持ちます。
悲観的ロック
クエリ ビルダーには、SELECT ステートメントを支援するいくつかの「悲観的ロック」機能が含まれています。 SELECT ステートメント「Shared Lock」を実行すると、sharedLock メソッドを使用してクエリを実行できます:
コードをコピーします コードは次のとおりです:
DB::table('ユーザー')->where('投票', '>',
100)->sharedLock()->get();
SELECT ステートメントの「ロック」を更新するには、lockForUpdate メソッドを使用してクエリを実行できます。
コードをコピーします コードは次のとおりです:
DB::table('users')->where('votes', '>', 100)->lockForUpdate()->get();
7. キャッシュクエリ
ニーモニックを使用してクエリの結果を簡単にキャッシュできます。
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->remember(10)->get();
この例では、クエリの結果は 10 分間キャッシュされます。クエリ結果がキャッシュされる場合、クエリ結果はデータベースに対して実行されず、結果はアプリケーションで指定されたデフォルトのキャッシュ ドライバーからロードされます。キャッシュをサポートするドライバーを使用している場合は、キャッシュにタグを追加することもできます:
コードをコピーします コードは次のとおりです:
$users = DB::table('users')->cacheTags(array('people', 'authors'))->remember(10)->get();
280907494 開発グループ、グループ内でこれをやっている人がたくさんいます。
詳細なエラーを確認するにはデバッグをオンにしてください
http://www.bkjia.com/PHPjc/874112.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/874112.html技術記事 Laravel フレームワーク データベース、laravelcurd での CURD 操作とコヒーレント操作の概要 1. 次のようにコードをコピーして、テーブル内のすべての行を取得します。 $users = DB::table('users')-get();あなた...