Laravel CRUD入門 チュートリアル学習【初心者・基礎練習・勉強】

man

困ってる人

CRUDって一体何だろう?
CRUDについて勉強出来るチュートリアルみたいなものってどこかにないかなぁ?


まず始めに「CRUD処理」とは、

  • Create(データの作成、登録)
  • Read(データを読み込む、参照する)
  • Update(データを更新、アップデートする)
  • Delete(データの削除)

  • これらの頭文字を取って「CRUD」

    という事で、今回は何かしらのものを1つ作ってみて、

    実際にどんな感じで「CRUD」の処理がされているのか?というのを見ていく記事。

    今回作るのは、こんな感じのもの。

    今回の内容を順番に進めていく内にエラーがなどが出る場合は、

    これとは別の記事にもエラーの解決方法などがいろいろと書いてあるので、それらにも目を通してみるといいかも。

    1.データベースを作成する

    データベースに関しては、今回は「MySQL(phpMyAdmin)」を使います。

    という事で、http://localhost/phpmyadmin/ にアクセス

    既に「XAMPP」などがインストールされている場合には、

    「XAMPP」起動後に「Admin」をクリックしてもこの画面を表示する事が出来ます。

    という事で、今回は試しに「sample001」という名前のデータベースにしてみました。

    今の時点では、データベース内にはまだテーブルがない状態。

    無事にデータベースの作成が終わったら、今回はデスクトップに「sample」というプロジェクトを作る準備をします。

    という事で「コマンドプロンプト」を開き、

    cd desktop

    laravel new sample

    cd sample

    そうすると、デスクトップ上に「sample」というプロジェクトファイルふぁ出来上がる。

    2.データベースとプロジェクトを繋げる

    プロジェクトフォルダ内の「.env」を開いて、データベースとプロジェクトファイルの設定、

    今回は「MySQL」を使う設定なので、

    に変更する。

    3.テーブルを作成

    php artisan make:migration create_posts_tableで、

    database\migrations の中に、テーブルが出来上がる

    そうしたら、php artisan serve でサーバーを起動し、

    ブラウザで、http://127.0.0.1:8000 にアクセス

    4.テーブルに新しくフィールドを追加

    database\migrations

    「create_posts_table.php」の、up関数の中に、

    を追加、

    そうするとこんな感じ。

    保存したら、php artisan migrate で、変更した設定をデータベースに反映させる。

    そうすると「phpMyAdmin」にも、postsテーブルが作成される。

    そして、postsテーブル内にも「create_posts_table.php」で書いた内容、

    「title」「body」という項目が追加される。

    5.新しくモデルを作成

    モデルを作成する命令は、

    php artisan make:model Post

    そうすると、app\ の中に、

    「Post.php」が作られる。

    6.コントローラーを作成

    コントローラーを作成する命令は、

    そうする事で、app\Http\Controller\ の中に、

    「PostController.php」が作成される。

    – -resource、もしくは、-r(rオプション)を使う事によって、

    「CRUD」に必要なメソッドが自動的に作成される。

    「CRUD」に必要なメソッドというのは、基本的には7項目で、

    ここで例えば、php artisan route:list で、テーブルの中身を確認。

    これらの7項目のデータが、作ったコントローラーの中にも自動的に書かれる。

    この中にある関数内に、それぞれのメソッドを書いていき「CRUD処理」をしていく。

    7.Declare our table (if your table is not procedurel)

    app\

    テーブルのカラムを追加した場合は、

    「Post.php」に、protectedで追加したデータを保護する。

    8.Postコントローラーで、Postモデルを使用する設定

    app\Http\Controllers

    「PostController.php」に、

    を追加する。

    9.【indexメソッド】indexメソッドで、データベースの全てのデータを「index.blade.view」で見れるようにする

    app\Http\Controllers

    この場合の「compact関数」= 変数を1つ受け渡す場合に使う(with関数よりもcompactを使う事の方が多い)

    10.LaravelCollectiveをインストール

    「LaravelCollective」をインストールする時は、

    「コマンドプロンプト」「composer」を使う。

    ※LaravelCollective = 通常、ビューにフォームを書くには、HTMLを書く必要があるが、

    「LaravelCollective」を使う事によって、ヘルパー関数が使えるようになる。

    パッケージを追加するには config/app.php に、

  • サービス・プロバイダーの登録
  • ファサードの登録
  • が必要になる。

    詳しくはここ

    11.app.phpにService ProviderとAliasを追加する(プロバイダーとファサードの登録)

    bootstrap\config

    そして次に、

    11.新しくルートを作成

    routes\web.php

    を追加する(postsに来た場合 → PostControllerに行くように。)

    Laravelでは「Route::resource」を使う事で、CRUDのルーティングを一度に行う事が出来る。

    今後はこの「PostController.php」の中で全ての処理をするように設定する。

    12.resources\viewsに、新しくフォルダを作成し、中に今回必要なファイルを作成する

    今回は、resources\views の中に「posts」という名前のフォルダを作成し、

    その中に、ビューファイル(index.blade.phpなど)を入れていく。

    とりあえずまず始めは、以下の2つのファイルを「posts」の中に作る。

  • master.blade.php
  • index.blade.php

  • という事で、まずは「master.blade.php」から、

    そして次に「index.blade.php」

    13.データベースに新しくデータを追加して、indexページで見てみる。

    ここで試しに「phpMyAdmin」側から、データベースにデータを追加出来るかを確認してみる。

    「phpMyAdmin」のページを開く

    Postsテーブルを選択

    「Insert」タブ

    「title」右側の枠内に適当に文字を入力
    (今回は分かりやすく「初めての投稿」と入力してみた)

    「body」右側の枠内にも適当に文字を入力
    (今回は試しに、初めまして、こんにちは!と入力してみた)

    「created_at」「updated_at」の日付を適当に選択、

    「Go」


    ブラウザを更新すると、入力したものが登録、反映され、

    こんな感じに表示されるようになる。

    この時点ではまだ、右側の新規作成や、編集などのボタンを押しても何も出来ない。

    という事で、次からはメソッドを作成していく。

    14.【create】メソッドを作成する。

    という事で「新規作成ページ」用に、新たにページを作っていく、

    postsフォルダ「create.blade.php」を作成。

    app\Http\Controllers

    「PostController.php」createメソッド

    そして次に「create.blade.php」の中にどのような処理をするかを書いていく。

    そうしたら次に「form.blade.php」も作成、

    そうしたら「http://127.0.0.1:8000/posts/create」にブラウザでアクセスしてみる。

    ※この時点ではまだ「投稿する」のボタンを押しても、何の反応もないので、

    次の、store関数に新しくメソッドを作り、データを保存出来るようにする。

    15.【storeメソッド】入力したデータをデータベースに保存するために、Store関数に新しくメソッドを作る

    Store関数 = データベースに新しくデータを保存する。

    app\Http\Controllers

    こうする事で、

    「タイトル」「本文」を入力し「投稿する」ボタンを押して、データをデータベースに登録する事が出来るようになる。

    ※データは、http://127.0.0.1:8000/posts に登録される(phpMyAdminのテーブル内にも同時に登録される)

    試しに、タイトルと内容を追加してみるとこんな感じ。

    16.【showメソッド】個別のデータを、showメソッドを使ってページに表示させる(個別記事ページ)

    app\Http\Controllers

    そして「postsフォルダ」に、show.blade.phpを作成する。

    そうすれば「見る:Show」ボタンを押して、記事の内容を確認する事が出来るようになる。

    17.【editメソッド】それぞれの記事データを、editメソッドを使用し、edit.blade.phpで編集出来るようにする。

    app\Http\Controllers

    そうしたら、postsフォルダ「edit.blade.php」を作る。

    そうすると「編集:Edit」ボタンを押す事によって、記事の編集画面が表示されるようになる。

    ただ、今この時点では、まだ「投稿」ボタンを押しても、データは反映されないので、

    次の、updateメソッドでデータを反映させるように設定をする。

    18.【updateメソッド】updateメソッドで、データをデータベースに保存する

    「storeメソッド」の中身をコピーしてきて、内容を書き変える、

    app\Http\Controllers

    そうする事で、今後はそれぞれの記事を個別に編集出来るようになる。

    編集後は「phpMyAdmin」の方にもきちんと反映される。

    19.【destroyメソッド】destroyメソッドを使用して、データベースのデータを削除する。

    そして最後に「消す:Delete」ボタンの設定、

    app\Http\Controllers

    これでOK。

    ここまででとりあえず、

  • Create(データの作成、登録)
  • Read(データを読み込む、参照する)
  • Update(データを更新、アップデートする)
  • Delete(データの削除)
  • ここら辺の機能に関する説明は、一通り終わり。

    今回の内容が理解出来れば、ある程度「CRUD」については問題ないはず。

    プログラミングが難しい, 挫折した, 勉強法が分からないという人におすすめのプログラミングスクール