「Laravel 9実践入門 for Mac」の感想・備忘録3

スポンサーリンク
「Laravel 9実践入門 for Mac」の感想・備忘録2の続き

CRUDの作成

編集ページの作成

  1. touch resources/views/product/edit.blade.php
@extends('adminlte::page')

@section('title', '商品編集')

@section('content_header')
    <h1>商品編集</h1>
@stop

@section('content')
    @if ($errors->any())
        <div class="alert alert-warning alert-dismissible">
            {{-- エラーの表示 --}}
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif

    {{-- 編集画面 --}}
    <div class="card">
        <form action="{{ route('product.update', $product->id) }}" method="post">
            @csrf @method('PUT')
            <div class="card-body">
                {{-- 商品名入力 --}}
                <div class="form-group">
                    <label for="name">商品名</label>
                    <input type="text" class="form-control" id="name" name="name"
                           value="{{ old('name', $product->name) }}" placeholder="商品名" />
                </div>
                {{-- 価格入力 --}}
                <div class="form-group">
                    <label for="price">価格</label>
                    <input type="text" class="form-control" id="price" name="price"
                           value="{{ old('price', $product->price) }}" placeholder="価格" />
                </div>
            </div>
            <div class="card-footer">
                <div class="row">
                    <a class="btn btn-default" href="{{ route('product.index') }}" role="button">戻る</a>
                    <div class="ml-auto">
                        <button type="submit" class="btn btn-primary">編集</button>
                    </div>
                </div>
            </div>
        </form>
    </div>
@stop
public function edit($id)
{
    return view('product.edit', ['product' => Product::find($id)]);
}
public function update(ProductRequest $request, $id)
{
    Product::find($id)->fill($request->all())->save();
    return redirect()->route('product.index')->with('message', '編集しました');
}

削除処理の作成

public function destroy($id)
{
    Product::find($id)->delete();
    return redirect()->route('product.index')->with('message', '削除しました');
}

メニューの修正

// menu配列を上書き
'menu' => [
    [
        'text' => '商品マスタ',
        'route'  => 'product.index',
        'icon' => 'fas fa-shopping-cart',
        'active' => ['product/*'],
    ],
],

ページネーションの追加

public function index()
{
    return view('product.index', ['products' => Product::paginate(5)]);
}

・app/Providers/AppServiceProvider.php
public function boot()
{
    // ページネーションのデザインをBootstrapにする
    Paginator::useBootstrap();
}
@if ($products->hasPages())
    <div class="card-footer clearfix">
        {{ $products->links() }}
    </div>
@endif

コメント