replica410
@replica410 (陽 有村)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

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

2Answer

Auth::user() が取れてないんですかね

「ログイン後にトップページに飛ぶ」はリダイレクトで実装されてますか?

0Like

Your answer might help someone💌