link_to_routeを記述すると、エラーが出るものと出ないものがあります。
index.blade.phpに書いてあるものはエラーが出ず、正常にページが表示され、link_to_routeの内容も反映されています。
index.blade.php
@extends('layouts.app') @section('content') <h1>メッセージ一覧</h1> @if (count($messages) > 0) <table class="table table-striped"> <thead> <tr> <th>id</th> <th>メッセージ</th> </tr> </thead> <tbody> @foreach ($messages as $message) <tr> <td><a href = "{{ route('messages.show', $message->id)}}">{{$message->id}}</a></td> <td>{{ $message->content }}</td> </tr> @endforeach </tbody> </table> @endif {!! link_to_route('messages.create', '新規メッセージの投稿', [], ['class' => 'btn btn-primary']) !!} @endsection
ですが、下記の場合はエラーが出てしまい、ページ自体が表示されません。
show.blade.php
@extends('layouts.app') @section('content') <h1>id = {{ $message->id }} のメッセージ詳細ページ</h1> <table class="table table-bordered"> <tr> <th>id</th> <td>{{ $message->id }}</td> </tr> <tr> <th>メッセージ</th> <td>{{ $message->content }}</td> </tr> </table> {!! link_to_route('messages.edit', 'このメッセージを編集', ['id' => $message->id], ['class' => 'btn btn-light']) !!} @endsection
上記ソースコード下部の
{!! link_to_route('messages.edit', 'このメッセージを編集', ['id' => $message->id], ['class' => 'btn btn-light']) !!}
なぜだか原因のわかる方いらっしゃいませんでしょうか?
ちなみに、コントローラやルーティングは下記の通りです。
MessagesController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Message; class MessagesController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $messages = Message::all(); return view('messages.index', [ 'messages' => $messages, ]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $message = new Message; return view('messages.create', [ 'message' => $message, ]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $message = new Message; $message->content = $request->content; $message->save(); return redirect('/'); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $message = Message::find($id); return view('messages.show', [ 'message' => $message, ]); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $message = Message::find($id); return view('messages.edit', [ 'message' => $message, ]); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }
web.php
<?php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', 'MessagesController@index'); Route::resource('messages', 'MessagesController');
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/05 17:10
2021/02/06 09:06 編集