Laravelでのパラメーターに関するエラーについて
解決したいこと
フリーマーケットサイトを作っているのですが、ログイン成功後に飛べるトップページにアクセスする時に、トップページにリンク先を貼っているプロフィール画面経由で毎回パラメーターを渡せていない時に表示されるエラーが出てしまい困っています。
エラーが出た際に毎回プロフィール画面などの他のビューページのURLを手入力して一度飛んでからトップページに戻るという二度手間を踏んでいるので、それを直してトップページがちゃんと表示されるようにしたいです。
発生している問題・エラー
Missing required parameters for [Route: profile.show] [URI: profile/{profile}]. (View: /home/ec2-user/environment/laravel_market/resources/views/layouts/top.blade.php)
該当するソースコード
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!
|
*/
Auth::routes();
Route::get('/', function () {
return view('layouts.top');
});
// お気に入り一覧
Route::resource('likes', 'LikesController')->only([
'index', 'store', 'destroy'
]);
Route::resource('items', 'ItemsController');
Route::resource('profile', 'ProfileController')->only([
'store', 'destroy'
]);
//Route::get('users/{user}/exhibitions', 'UserController');
Route::get('items/create', 'ItemsController@create');
Route::post('items', 'ItemsController@store');
Route::get('/profile/{id}/edit', 'ProfileController@edit')->name('profile.edit');
Route::patch('/profile/{id}', 'ProfileController@update')->name('profile.update');
Route::get('/profile/{id}/edit_image', 'ProfileController@editImage')->name('profile.edit_image');
Route::patch('/profile/{id}/edit_image', 'ProfileController@updateImage')->name('profile.update_image');
Route::resource('profile', 'ProfileController')->only([
'show',
]);
top.blade.php(トップページのビュー)
@extends('layouts.default')
@section('header')
<header>
<ul class="header_nav">
<li>
<a href="/">
Market
</a>
</li>
<li>
<a href="{{ route('profile.show', Auth::user()) }}">
プロフィール
</a>
</li>
<li>
<a href="/likes/index">
お気に入り一覧
</a>
</li>
<li>
<a href="/users">
出品商品一覧
</a>
</li>
<form action="{{ route('logout') }}" method="POST">
@csrf
<input type="submit" value="ログアウト">
</form>
</ul>
</header>
@endsection
show.blade.php(プロフィール画面のビュー)
@extends('layouts.top')
@section('content')
<h1>{{ $title }}</h1>
<a href="{{ route('profile.edit', Auth::user() )}}">編集</a>
@if($user !== null)
<div>
名前
{{ $user->name }}
</div>
<div>
@if($user->image !== '')
<img src="{{ asset('storage/' . $user->image) }}">
@else
<img src="{{ asset('images/no_image.png') }}">
@endif
<a href="{{ route('profile.edit_image', $user) }}">画像を変更</a>
</div>
<div>
<span>プロフィール</span>
<ul>
@if($user->profile)
<li>{{ $user->profile }}</li>
@else
<li>プロフィールが設定されていません。</li>
@endif
</ul>
</div>
@else
<p>設定されていません。</p>
@endif
@endsection
### 自分で試したこと
スペルの確認など
0