ORMを使う時でも、データベースの取り扱いをとても簡単にしてくれます。現在、Laravelは以下のデータベースシステムを使用しています。Server設定データベース設定ファイルはconfig/database.phpです。このファイルで使用するデータベース接続を全部定義すると同時に、デフォルトで使用する接続も指定してください。サポートしているほとんどのデータベースシステムの例がファイルの中に用意しています。Homestead用に設定してあります。ローカルのデータベースに合わせるため、自由に変更してくだい。database/database.sqliteなどのコマンドを使い、新しいSQLiteデータベースを作成した後、この新しいデータベースの絶対パスを環境変数へ設定します。DB_CONNECTION=sqliteDB_DATABASE=/absolute/path/to/database.sqliteRead/Write接続SELECT文に別のデータベース接続を利用したい場合もあると思います。INSERT、UPDATE、DELETE文では他の接続に切り替えたい場合などです。Laravelでこれを簡単に実現できます。ORMを利用する場合であろうと、適切な接続が利用されます。Read/Write接続を理解してもらうため、以下の例をご覧ください。'',],設定配列にreadとwrite、sticky、3つのキーが追加されたことに注目して下さい。2つのキーともhostというキーを一つ持っています。readとwrite接続時の残りのデータベースオプションは、メインのmysql配列からマージされます。readとwriteの配列には、メインの配列の値をオーバーライドしたいものだけ指定してください。この場合、192.168.1.1は"read"接続に利用され、一方192.168.1.2が"write"接続に利用されます。メインのmysql配列に含まれる、データベース接続情報、プレフィックス、文字セットなどその他のオプションは、両方の接続で共有されます。stickyオプションstickyオプションはオプショナル値で、現在のリクエストサイクル中にデータベースへ書き込まれたレコードを即時に読み込めるようにします。stickyオプションが有効で、現在のリクエストサイクル中にデータベースに対して「書き込み(write)」処理が実行されると、すべての「読み込み(read)」操作で"write"接続が使われるようになります。これによりリクエストサイクル中に書き込まれたデータが、同じリクエスト中にデータベースから即時に読み込まれることが確実になります。複数の接続を使用する場合は、DBファサードのconnectionメソッドを利用し、各接続にアクセスできます。connectionメソッドに渡す「名前」は、config/database.php設定ファイルの中のconnectionsにリストされている名前を指定します。DB::connection('foo')->select(...);裏で動作しているPDOインスタンスに直接アクセスしたい場合は、接続インスタンスにgetPdoメソッドを使います。DB::connection()->getPdo();SQLクエリの実行データベース接続の設定を済ませれば、DBファサードを使用しクエリを実行できます。select、update、insert、delete、statementのクエリタイプごとにメソッドを用意しています。基本的なクエリを行うには、DBファサードのselectメソッドを使います。}}selectメソッドの最初の引数はSQLクエリで、2つ目の引数はクエリに結合する必要のあるパラメーターです。通常、パラメーターはwhere節制約の値です。パラメーター結合はSQLインジェクションを防ぐために提供されています。selectメソッドはいつも結果の「配列」を返します。結果の値へアクセスできるように、配列に含まれる結果はそれぞれ、PHPのStdClassオブジェクトになります。$user->name;}名前付き結合の使用パラメーター結合に?を使う代わりに名前付きの結合でクエリを実行できます。1]);INSERT文の実行insert文を実行するには、DBファサードのinsertメソッドを使います。selectと同様に、このメソッドは第1引数にSQLクエリそのもの、第2引数に結合を取ります。'Dayle']);UPDATE文の実行データベースの既存レコードの更新には、updateメソッドを使います。このメソッドの返却値は影響を受けたレコード数です。['John']);DELETE文の実行データベースからレコードを削除するには、deleteメソッドを使います。updateと同様に、削除したレコード数が返されます。users');通常のSQL文を実行するいつくかのデータベース文は値を返しません。したタイプの操作には、DBファサードのstatementメソッドを使います。users');クエリイベントのリッスンアプリケーションで実行される各SQLクエリを取得したい場合は、listenメソッドが使用できます。このメソッドはクエリをログしたり、デバッグしたりするときに便利です。クエリリスナはサービスプロバイダの中で登録します。}}データベーストランザクション一連の操作をデータベーストランザクション内で実行するには、DBファサードのtransactionメソッドを使用してください。トランザクション「クロージャ」の中で例外が投げられると、トランザクションは自動的にロールバックされます。「クロージャ」が正しく実行されると、自動的にコミットされます。transactionメソッドを使用すれば、ロールバックやコミットを自分でコードする必要はありません。DB::table('posts')->delete();});デッドロックの処理transactionメソッドは第2引数に、デッドロック発生時のトランザクション再試行回数を指定できます。試行回数を過ぎたら、例外が投げられます。5);手動トランザクショントランザクションを自分で開始し、ロールバックとコミットを完全にコントロールしたい場合は、DBファサードのbeginTransactionメソッドを使います。DB::beginTransaction();rollBackメソッドにより、トランザクションをロールバックできます。DB::rollBack();同様に、commitメソッドにより、トランザクションをコミットできます。ORMのトランザクションを両方共にコントロールします。2018.ドキュメントメンテナンス期間は終了しました。注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。閉じる移動クリックで即時移動します。適用ボタンクリック後に、全項目まとめて適用されます。Scaffoldスカフォールド型枠生成スカフィールドLargeスクリーン表示幅640px80%90%100%インデントなし1rem2rem3rem本文フォントコードフォントフォント適用確認フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。バックスラッシュを含むインライン\Code\Blockの例です。以下はコードブロックの例です。}}設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。