Laravelの基本はこちらから学べます

Laravel6×MAMPで掲示板を作ろう②




CRUD機能を作成する

C:Create  新規投稿できる

R:Read   投稿したものがみれる

U:Update 投稿したものをアップデートできる

D:Delete  投稿を削除できる

webサービスの基本機能を作っていきます。

Controllerを作成する

掲示板アプリケーションには、一覧表示、個別表示、新規投稿画面、更新画面が必要です。

また、新規投稿、更新、削除の処理を担当するルート(線路)が必要なので、合計7つになります。

まとめると、以下の通りです。

まずはMVCモデルのControllerを作成しましょう。

今回は「リソースコントローラー」を作成します。リソースコントローラーを作成することで、上記7つをモーラすることができます。

Laravel 6.x コントローラ

今回は下記2つのコントローラーを作成していきます。下記コマンドを打ち込みましょう。

php artisan make:controller PostController --resource

php artisan make:controller CommentController --resource

上記コマンドを打ったことで、

app Http Controllers 内に

「PostController」「CommentController」が作成されたと思います。完璧です。

次に

routes web.php を確認しましょう

web.phpではどのURIにアクセスがきたときに、どのコントローラを動かすかをかく場所になります。ここに記載することを「ルーティング」するともいいます。

Route::resource('posts', 'PostController');

Route::resource('comments', 'CommentController');

上記のように追加することで、URIのルート(線路)が開通しました。確認しましょう。

ターミナルを開いて

php artisan route:list

と打ち込みましょう。この中に「posts」のルーティング、「comments」のルーティングの記載があれば完璧です。

ここまでで、ユーザーが特定のURIにアクセスした時に動かすControllerの指定(ルーティング)が完了しました。

掲示板の一覧ページを作成する

まず、ログインしてみましょう。そうすると

URIとしては「/home」にとばされるはずです。

これを「/posts」に飛ばすように変更を加えましょう。

app Providers RouteServiceProvider.phpを開きましょう

// public const HOME = '/home'; →こちらを
public const HOME = '/posts';→こちらに変更しましょう。

ログアウトしてもう一度ログインしてみましょう。

そうすると…..

ちゃんと「/posts」に飛ばされました!完璧。

次に

resources Views のなかに Postsディレクトリを作りましょう。

その中に、

「index.blade.php」「show.blade.php」「edit.blade.php」「create.blade.php」

を作成。

「一覧画面」「詳細画面」「編集画面」「新規投稿画面」

に適用されるview(ユーザーがみるページ)です。

そうしましたら

index.phpを開いて、下記を記入しましょう。BootstrapのCardを使っています。

Cards

@extends('layouts.app') →ここでviews layoutsの app.blade.phpを読み込みます

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
	         <div class="card text-center">
			<div class="card-header">
				投稿一覧
			</div>
			<div class="card-body">
				<h5 class="card-title">初めての投稿</h5>
				<p class="card-text">油そばは春日亭も好きですが、kirinjiが一番好きです</p>
				<a href="#" class="btn btn-primary">詳細</a>
			</div>
			<div class="card-footer text-muted">
				2日前
			</div>
		</div>
        </div>
    </div>
</div>
@endsection

次に

PostController.phpをひらきましょう。

一覧画面を作成するので、「public function index」に書き込んでいきます。

public function index()
    {
        return view('posts.index');
            →追加(postsディレクトリのindex.blade.phpという意味)
    }

ここまでで、

ユーザーが

/postsにGETでアクセス→ルーティング→PostControllerのindexが発火→index.blade.phpが表示

までの一連の流れを作成することができました。

それではもう一度ログインをしてみましょう!!

いい感じに表示できましたね!!

それでは今回はここまで。




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です