「Laravel 9実践入門 for Mac」の感想・備忘録2 の続き
CRUDの作成
編集ページの作成
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
コメント