laravelの基本チートシート(初心者用)

前提条件
・MacBook
・mamp
・環境構築完了済み

記載内容

今回はlaravelのプロジェクトの作成方法をまとめた記事になります
正直mampとxampあまり変わらない

プロジェクト作成

laravelのインストール

composer create-project laravel/laravel プロジェクト名

npm インストール

npm install

mampをスタートさせる

image.png

サーバー起動

<!-- 別々のコマンドを開いて実行
実行場所はlaravelのプロジェクトフォルダー-->
1
php artisan serve
2
npm run dev

DB接続

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=members
DB_USERNAME=root
DB_PASSWORD=root
↓xamppの場合は必要ない
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

enbファイルを書き換え後に

php artisan migrate

## 認証機能をつける場合
Breezeのインストール

composer require laravel/breeze --dev
php artisan breeze:install

①まず「どのスタックをインストールしますか?」と質問が表示されます。Livewire等を使う予定が特になければ、一番上を選択します。

②「ダークモードサポートをインストールしますか?」と質問が表示されます。ダークモード(黒っぽい画面)を使用したい場合には、yesを選びます。そうでなければ、noを選びます。ここでは、「no」を選択します。

③テストフレームワークを選択します。ご希望に応じて選んでください。ここでは「1」(PHPUnit) を選択します。

最後にphp artisan migrateでマイグレートを実行します。

認証機能をつけない場合

認証機能をつけない場合はこれで終わりなのですが個人的にbladeのビューのテンプレート化したコピペ用のコードを記載

app.blade.php

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="csrf-token" content="{{ csrf_token() }}">
    <title>{{ config('app.name', 'Laravel') }}</title>
    <!-- Fonts -->
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap">
    <!-- Styles -->
    @vite(['resources/css/app.css', 'resources/js/app.js'])
</head>

<body>
    <header>
        @include('layouts.header')
    </header>

    <main>
        @yield('content')
    </main>
</body>

</html>

header.blade.php

<div>
    header
</div>

home.blade.php

@extends('layouts.app')
@section('content')

ここにメインを書く

@endsection

コントローラーの作成

php artisan make:controller コントローラー名 --resource

基本的なCRUDのためのメソッド名

public function index()
public function create()
public function store(Request $request)
public function show(Post $post)
public function edit(Post $post)
public function update(Request $request, Post $post)
public function destroy(Post $post)

モデル(DB)の作成

php artisan make:model モデル名 -m

データ型と説明

データ型説明(公式サイトより)使用時
integerINTEGERカラム整数
stringVARCHARカラム名前など短めの文字列
textTEXTカラムコメントなどの文字列
longTextLONGTEXTカラムかなり長い文字列
unsignedBigInteger符号なしBIGINTカラム他のテーブルのID
foreignId符号なしBIGINTカラム(外部キー用)他のテーブルのID(リレーション用)
booleanBOOLEANカラムtrue / false

マイグレーションファイルの書き方の例

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('body');
        $table->text('image')->nullable();
        $table->timestamps();
    });
}

マイグレーションファイルを書き換えたらコマンド実行

php artisan migrate

ルートの書き方(web.php)

冒頭の宣言
use App\Http\Controllers\使用するコントローラー名;

基本的な書き方
Route::HTTPメソッド('URL', [コントローラー::class, 'メソッド'])->name('ルート名');

リソースコントローラー
Route::resource('post', PostController::class);

↓全て書くとこんな感じ

Route::get('post', [PostController::class, 'index'])->name('post.index');
Route::get('post/create', [PostController::class, 'create'])->name('post.create');
Route::post('post', [PostController::class, 'store'])->name('post.store');
Route::get('post/{post}', [PostController::class, 'show'])->name('post.show');
Route::get('post/{post}/edit', [PostController::class, 'edit'])->name('post.edit');
Route::patch('post/{post}', [PostController::class, 'update'])->name('post.update');
Route::delete('post/{post}', [PostController::class, 'destroy'])->name('post.destroy');

httpメソッド一覧

HTTPメソッド説明使用時
getページを表示一覧表示・詳細表示など
postデータを保存新規登録・送信フォーム
put / patchデータの更新編集処理
deleteデータの削除削除処理

【リソースコントローラーのURLとルート名一覧】

メソッドURLルート名HTTPメソッド
index/postpost.indexGET
create/post/createpost.createGET
store/postpost.storePOST
show/post/{post}post.showGET
edit/post/{post}/editpost.editGET
update/post/{post}post.updatePUT / PATCH
destroy/post/{post}post.destroyDELETE