2024_Hello_World
@2024_Hello_World

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

[Laravel]数字のみ設定できるidパラメーターを実装したい

Q&A

Closed

解決したいこと

クエリパラメータを使ってURLの末尾の数字を画面に表示させたいです。
(理想の結果)
URL:127.0.0.1:8000/hello/12345
表示:id = 12345
しかし、エラーが出てしまっています。
↓このように表示させたいです。

スクリーンショット 2024-03-27 181742.png

解決方法を教えて下さい。

発生している問題・エラー

Function () does not exist

スクリーンショット 2024-03-27 180935.png

該当するソースコード

index.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <title>Index</title>
</head>
<body>
    <h1>Hello/Index</h1>
    <p>{{$msg}}</p>
</body>
</html>
Hello.Controller.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HelloController extends Controller
{
    public function index($id)
    {
        $data = [
            'msg' => 'id = ' . $id,
        ];
        return view('hello.index', $data);
    }

    public function other()
    {
        return redirect()->route('hello');
    }
}
web.php
<?php

use App\Http\Controllers\HelloController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/hello', [HelloController::class, 'index'])->name('hello');
Route::get('/hello/other', [HelloController::class, 'other']);
Route::get('hello/{id}', [HelloController::class], 'index')->where('id', '[0-9]+');
0

1Answer

web.phpのhello/{id}ルートの下記が間違えているので修正すれば動くと思います。
誤:[HelloController::class], 'index'
正:[HelloController::class, 'index']

// Route::get('hello/{id}', [HelloController::class], 'index')->where('id', '[0-9]+');
// 上記の行に誤りがあります。正しく修正すると次のようになります:
Route::get('/hello/{id}', [HelloController::class, 'index'])->where('id', '[0-9]+');
1Like

Comments

  1. ご回答いただきありがとうございます!
    ご指摘の通り修正したところ出力することができました!

  2. 無事動いたようで何よりです!:relaxed:

Your answer might help someone💌