LoginSignup
0
1

More than 1 year has passed since last update.

Laravel入門

Last updated at Posted at 2021-05-06

環境

  • 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にアクセスした際にHTTPgetで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頑張ります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1