YuHo のブログ

Laravel, PHP, JavaScript

Laravel 5.6 でブログサイトを制作する #3

welcome.blade.php に簡易ログイン用のリンクを貼る

// welcome.blade.php
@guest
  <li><a class="nav-link" href="{{ route('quick-login') }}">Quick Login</a></li>
  <li><a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a></li
  <li><a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a></li>
@else

簡易ログイン用の Route を追加する

<?php

Route::get('/quick-login', function() {
    $user = App\User::find(1);
    
    Auth::login($user, true);
    
    return redirect('/');
})->name('quick-login');

welcome.blade.php を app.blade.php を拡張する形式に変更する

@extends('layouts.app')

@section('content')
<div class="content">
    @foreach($posts as $post)
    <p><a href="{{ route('posts.show', $post->id) }}">{{ $post->title }}</a></p>
    @endforeach
</div>
@endsection

app.blade.php に新規投稿作成用のリンクを追加する

@else
  <li><a href="{{ route('posts.create') }}">New Post</a></li>

create.blade.php を修正する

<form action="{{ route('posts.store') }}" method="POST">
  @csrf
  <input id="title" name="title" type="text" />
  <textarea id="content" name="content"></textarea>
  <button type="submit">Store</button>
</form>

PostController の編集

<?php

use Illuminate\Support\Facades\Auth;

public function store(Request $request)
{
    $post = new Post;
    $user_id = Auth::id();

    $post->title = $request->input('title');
    $post->content = $request->input('content');
    $post->user_id = $user_id;

    $post->save();

    return redirect('/');
}