@endauth
@endsection
/resources/views/show.blade.php
@extends('layout')
@section('content')
{{ $shop->name }}
{{ $shop->category->name }}
{{ $shop->address }}
一覧に戻る
@auth
@if ($shop->user_id === $login_user_id)
|
$shop->id]) }}>編集
{{ Form::open(['method' => 'delete', 'route' => ['shop.destroy', $shop->id]]) }}
{{ Form::submit('削除', ['class' => 'btn btn-outline-danger']) }}
{{ Form::close() }}
@endif
@endauth
@endsection
/resources/views/new.blade.php
@extends('layout')
@section('content')
新しいお店
{{ Form::open(['route' => 'shop.store']) }}
{{ Form::label('name', '店名:') }}
{{ Form::text('name', null) }}
{{ Form::label('address', '住所:') }}
{{ Form::text('address', null) }}
{{ Form::label('category_id', 'カテゴリ:') }}
{{ Form::select('category_id', $categories) }}
{{ Form::submit('作成する', ['class' => 'btn btn-outline-primary']) }}
{{ Form::close() }}
@endsection
/resources/views/edit.blade.php
@extends('layout')
@section('content')
{{$shop->name}}を編集する
{{ Form::model($shop, ['route' => ['shop.update', $shop->id]]) }}
{{ Form::label('name', '店名:') }}
{{ Form::text('name', null) }}
{{ Form::label('address', '住所:') }}
{{ Form::text('address', null) }}
{{ Form::label('category_id', 'カテゴリ:') }}
{{ Form::select('category_id', $categories) }}
{{ Form::submit('更新する', ['class' => 'btn btn-outline-primary']) }}
{{ Form::close() }}
@endsection
Controller
app/Http/Controllers/HomeController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('home');
}
}
app/Http/Controllers/ShopController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Shop;
use App\Category;
class ShopController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$shops = Shop::all();
return view('index', ['shops' => $shops]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$shop = new Shop;
$categories = Category::all()->pluck('name', 'id');
return view('new', ['shop' => $shop, 'categories' => $categories]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$shop = new Shop;
$user = \Auth::user();
$shop->name = request('name');
$shop->address = request('address');
$shop->category_id = request('category_id');
$shop->user_id = $user->id;
$shop->save();
return redirect()->route('shop.list');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$shop = Shop::find($id);
$user = \Auth::user();
if ($user) {
$login_user_id = $user->id;
} else {
$login_user_id = "";
}
return view('show', ['shop' => $shop, 'login_user_id' => $login_user_id]);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$shop = Shop::find($id);
$categories = Category::all()->pluck('name', 'id');
return view('edit', ['shop' => $shop, 'categories' => $categories]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id, Shop $shop)
{
$shop = Shop::find($id);
$shop->name = request('name');
$shop->address = request('address');
$shop->category_id = request('category_id');
$shop->save();
return redirect()->route('shop.list');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$shop = Shop::find($id);
$shop->delete();
return redirect('/shops');
}
public function __construct()
{
$this->middleware('auth')->except(['index', 'show']);
}
}