環境
- MAMP
- Laravel 6
- PHP 7.4
アプリの作成
$ composer create-project --prefer-dist laravel/laravel アプリ名 "6.*"
$ cd アプリ名
$ chmod -R 777 storage
$ chmod -R 777 bootstrap/cache
マイグレーションのファイルの生成
$ php artisan make:migration create_テーブル名(複数形)_table
マイグレーションのファイル変更
public function up()
{
if (!Schema::hasTable('blogs')) { //追記
Schema::create('blogs', function (Blueprint $table) {
$table->id();
$table->string('title', 100); //追記
$table->text('content'); //追記
$table->timestamps();
});
}
}
if (!Schema::hasTable('blogs'))
=> もし、blogs
が無かったらテーブルを作る。
$table->string('title', 100);
=> string型でカラム名をtitle
、文字数を100まででカラムを作ります。
データベースに反映させる
$ php artisan migrate
データベースが作成されているのでphp MyAdminにて確認する。
モデルを作成
$ php artisan make:model (単数形)
class Blog extends Model
{
use HasFactory;
//テーブル名
protected $table = 'blog'; //追記
//可変項目
protected $fillable = //追記
[
'title',
'content'
];
}
ルーティングの追加
routes/web.php
Route::get('/', 'BlogController@show')->name
('blog');
localhost:8888
にアクセスした際にHTTP
はget
でBlogController@show`->BlogControllerのshowメソッドが呼ばれる。
コントローラの作成
$ php artisan make:controller BlogController
Http/Controller/BlogControier.php
class BlogController extends Controller
{
/**
*
* @return view
*/
public function show()
{
return view('blog.list');
}
}
return view('blog.list');
->views/blog/list.blade.phpを表示させる。
bladeの使い方
簡略的に言うと作成したviewファイルを他のファイルでも表示させる機能です。
書き方は@include('header')
や@yield('content')
と書きます。
@include('表示したいファイル')
注意点は、('相対パスで書く')
こと
@yield('content')
は継承したファイルを表示させることができる。
show.blade.php
@extends('layout') //継承する
@section('content')
//表示させたい範囲
@endsection
layout.blade.php
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Laravel_practice</title>
<link rel="stylesheet" href="/css/app.css">
<script src="/js/app.js" defer></script>
</head>
<body>
<header>
@include('header') //同じ階層のheader.blade.php
</header>
<div>
@yield('content') //継承している@section('content')〜@endsectionまで
</div>
<footer>
@include('footer') //同じ階層のfooter.blade.php
</footer>
</body>
</html>
終わり
筆者は、Rails
を学習してからLaravel
を学んでいるのですが共通する部分が多く、比較的に学習しやすいです。Larabel
学習したばかりですので間違っていたらすみません。PHP
はフレームワークの種類が多く学ぶのが大変そうですが、引き続きLaravel
頑張ります。