- 1. Chapter5 DBクラスの利用(5-2)
- 2. Chapter5 データベースを用意する(5-1)
- 3. PHPでMySQLのデータを出力する
- 4. プログラミング初学者がプログラミング言語と周辺知識の概要を知るための記事
- 5. Chapter4 その他のリクエスト・レスポンス処理(4-4)
- 6. Chapter4 バリデーションをカスタマイズする(4-3)
- 7. Chapter4 バリデーション(4-2)
- 8. ?【メモ】初学者がPHPの基礎まとめていく
- 9. 【Laravel 】専用サーバにデプロイした時のメモ
- 10. nl2brとは?何の略?
- 11. Chapter4 ミドルウェアの利用(4-1)
- 12. 【PHP】PHPのuseの使い方
- 13. Mac VScode Xdebug v3 でデバッグ
- 14. PHPでランダムな時間を生成
- 15. array_multisort(): Array sizes are inconsistent
- 16. windowsにPHPを入れてみた
- 17. 【Laravel8】親子テーブル(1対多のリレーション)を結合させたcsvファイルのインポート機能
- 18. 【Laravel】Illuminate\Database\Eloquent\Collection::paginate does not exist.
- 19. 【PHPUnit】よりベターなテストの仕方
- 20. 【PHPUnit】例外のテストは$this->expectException()を先に書く
Chapter5 DBクラスの利用(5-2)
# DBクラスとは?
Laravelに用意されている、
最もシンプルなデータベースアクセス機能は「DB」クラスです。中でも、最もシンプルなのは、SQLのクエリを直接実行するメソッドです。
# DBクラスを使用
## コントローラの修正
“`HelloController.php
use Illuminate\Support\Facades\DB;class HelloController extends Controller
{public function index(Request $request) {
$items = DB::select(‘select * from people’);
return view(‘hello.index’,[‘items’ => $items]);
}
}
“`## テンプレートの修正
“`index.php
@section(‘content’)
Name Chapter5 データベースを用意する(5-1)
# モデルとデータベース
## モデルとは
でーたの管理を行うところ。
=「データベースの処理」を担当する部分です。データを保管庫として使うことを想定しているアプリケーションであれば、
コントローラに数行記述すれば事足りるので、
モデルを作成して設定してだと返って大変になる。逆に多数のテーブルを連携させて複雑なでーた処理を行っているような
アプリケーションであればコントローラで扱う処理の大半がデータベース関係では、
モデルに切り離してわかりやすく求めるべきです。## Larabelの機能
### DBクラス(クエリビルダ)
最もシンプルなアプローチは「DB」クラスを利用する方法です。
この「DB」クラスでは、
データベースにアクセスするためのクエリを生成し、
送信することができます。
SQLクエリを直接実行するイメージに近い。### Eloquent (ORM)
ORM(Object-Relational-Mapping)と呼ばれる機能をLarabelに実装したものです。
**ORM**は、
「データベースのデータとプログラミング言語のオブジェクト言語のオPHPでMySQLのデータを出力する
PHPでMySQL連携ができたので、忘れないようにメモを残します。
# MySQLの設定
MySQLに以下のような設定をしました。なおログインユーザは`root`で、パスワードは`password`にしています。
“`:MySQLのデータベース
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| shop |
| sys |
+——————–+
“`“`:shopデータベース内のテーブル
+—————-+
| Tables_in_shop |
+—————-+
| member |
+—————-+
“`“`:memberテーブル内のデータ
+——–+——+
|プログラミング初学者がプログラミング言語と周辺知識の概要を知るための記事
# どのような人向けの記事か
私のような、【駆け出しエンジニアの方やプログラミングに関心のある方、初心者の方】向けにどんなプログラム言語があるのかをざっくりわかるようにゆる〜くまとめたものです。また、備忘録としても投稿しておこうと考えました!※当方も未経験エンジニアの立場で実務未経験であるため、間違いはあると思いますので適宜ご指摘いただければ幸いです。
# なぜ、この記事を記述するに至ったのか
理由としては、3点あります。
・自分自身が今後フルスタックエンジニアを目指しており、さまざまな言語や技術を習得したいと考えているから
・各言語の特徴を知ることで今後の開発等で最適な言語やライブラリ・コンポーネントへの理解が必須であると考えたから
・自分の武器を増やす上で特徴をまずはざっくり理解したいと考えたから# 本編
ここからが本番です!自分自身が記事等で学習したものをざっくばらんに言語化していきます。気になる言語があれば、ご自身でも深く調べてみることで、どんな言語なのか実感できるはずなので是非深掘りして見てくださいね!
### 【注意点】
・言語名の横に(マークアップ言語)と記載Chapter4 その他のリクエスト・レスポンス処理(4-4)
# CSRF対策とVarifyCsrfToken
これまでフォームを作成した際には基本的にCSRF対策のための機能を組み込んでありました。
フォームの中にには`@csrf`という値が組み込んであり、
これによってCSRF対策用のトークンを出力する非表示フィールドが組み込まれました。## `$except`に追記する
「Middleware」の中に、「VerifyCsrfToken.php」がCSRF対策を行うためのファイル。
VerifyCsrfTokenクラスには標準で`$except`という変数は用意されています。
そこにm CSRF対策を適用しないアクションを設定します。“`VerifyCsrfToken.php
class VerifyCsrfToken extends Middleware
{
protected $except = [
‘hello’,
];}
“`上記の記述により、「/hello」にPOST送信された際には、
CSRF対策が実行されなくなります。
これによりフォームから`@csrf`を削除しChapter4 バリデーションをカスタマイズする(4-3)
# バリデーションをカスタマイズする
## フォームリクエスト
コントローラはそれぞれのアクションで実行すべきビジネスロジックなどを実行することになるため、
「入力された値のチェック」などはできれば他に切り離したい。
(フォームの項目にバリデーション機能を実装する際に、各コントローラに書くのは面倒。)そこでLarabelでは「フォームリクエスト」と呼ばれる機能を考えました。
## フォームリクエストの作成
フォームリクエストは「artisan make:request」というコマンドを使って作成します。
“`
% php artisan make:request HelloRequest
“`### フォームリクエストの基本コード
“`HelloRequest.php
Chapter4 バリデーション(4-2)
# バリデーションとは?
バリデーションは「入力情報を検証するための仕組み」です。
Laravelではコントローラの「validate」メソッドを利用します。ValidateRequestsというトレイと(メンバーをまとめてクラス追加するためのもの)に
利用されているクラスです。“`sample.php
$this->validate($request,[***検証設定の配列*]);
“`
“`sample.php
[
‘**項目名**’ => ‘割り当てる検証ルール’,
‘**項目名**’ => ‘割り当てる検証ルール’,];
“`# バリデーションを利用する
“`index.php
@section(‘content’){{$msg}}