渋谷で働くエンジニア福さんのYoutube動画,実践で学ぶプログラミング入門 の学習記録です。
2,Migration編
***マイグレーションとは?***"データベースのテーブル作成や編集などを管理するためのファイル”
基本的に操作は ファイルの作成と実行の2つ。
参照ドキュメント
- コマンドからマイグレーションファイルを作成
php artisan make:migration create_blogs_table
(ここでは blogsという名前) - 作成したファイルに移動し、中身を設定する
- 実行コマンド
php artisan migrate
3,Model編
***モデルとは?***MVCというWebアプリケーションを実装する効率的な方法の一つで、
”データを処理したり、データをDBへ保存したりする役割”
参照ドキュメント
-
コマンドからモデルを作成
php artisan make:model Models/Blog
(ここではModelsフォルダにBlogファイル *blogsテーブルの単数名) -
php artisan make:model Models/Blog -m
でマイグレーションファイルとモデルの作成を同時に行うことも可能 -
php artisan make:model -help
で様々なオプションが用意されているのが確認できる
4,Route編
***ルーティングとは?***”ブラウザから任意のURLにアクセスがあった場合、どのコントローラー処理を動かすか定義する”
5, Controller編
***コントローラーとは?***”Viewからリクエストを受け取り、Modelへ処理の命令を出す、またModelから処理の結果を受け取り、レスポンスとしてViewへ返す役割”
5, View編
***ビューとは?***”Viewとは、ユーザーが実際に見る画面”
Bladeとは?
”Laravelのテンプレートエンジン = HTMLに直接PHPが書けたり、テンプレートのけ継承やデータの受け渡しができるなど便利に記述できる”
- 共通テンプレート作成
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>@yield('title')</title>
<link rel="stylesheet" href="/css/app.css">
<script src="/js/app.js" defer></script>
</head>
<body>
<header>
@include('header')
</header>
<br>
<div class="container">
@yield('content') //中身が変化するコンテンツ
</div>
<footer class="footer bg-dark fixed-bottom">
@include('footer')
</footer>
</body>
</html>
- 共通ヘッダー作成
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">ブログ</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav">
<a class="nav-item nav-link active" href="#">ブログ一覧 <span class="sr-only"></span></a>
<a class="nav-item nav-link" href="#">ブログ投稿</a>
</div>
</div>
</nav>
- 共通フッター作成
<div class="container text-center">
<span class="text-light">©︎福のプログラミング講座</span>
</div>
- 共通テンプレートを継承した containerの中身を作成
(ブログ一覧やブログ詳細、投稿 etc..)
@extends('layouts') //親テンプレートを継承
@section('title', 'ブログ一覧') //親テンプレートの@yieldの中身
@section('content')
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h2>ブログ記事一覧</h2>
<table class="table table-striped">
<tr>
<th>記事番号</th>
<th>日付</th>
<th>タイトル</th>
<th></th>
</tr>
<tr>
<td>1</td>
<td>2020/06/30</td>
<td>テスト</td>
<td></td>
</tr>
</table>
</div>
</div>
@endsection