找不到班级

问题描述 投票:0回答:1

我创建了一个网站,一个 YouTube 克隆,我试图访问频道/频道名称/编辑,但当我尝试这样做时,它说目标类 [App\Http\Controllers\Channel] 不存在。 我尝试在不同的 Laravel 版本上重新制作它,但令我惊讶的是,这并没有解决问题。我已经检查了路线和课程本身。我认为不应该有问题,但确实存在。 帮助:(

这是 ChannelController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ChannelController extends Controller
{
    public function edit(Channel $channel){

        return view('channel.edit', compact('channel'));

    }
}

这是带有路由的Web.php

<?php

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


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

Auth::routes();

Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');



Route::middleware('auth')->group( function() {

    Route::get('/channel/{channel}/edit', [ChannelController::class, 'edit'])->name('channel.edit');
});

php laravel
1个回答
0
投票

您的控制器需要知道

Channel
模型的定义位置。为模型添加
use
语句:

<?php

namespace App\Http\Controllers;

use App\Models\Channel;      //  <<< Add this line
use Illuminate\Http\Request;

class ChannelController extends Controller
{
    public function edit(Channel $channel){

        return view('channel.edit', compact('channel'));

    }
}

虽然 laravel 可以自动检测许多类,执行依赖注入,并且像本例一样,进行路由模型绑定,但你仍然必须包含类声明。

© www.soinside.com 2019 - 2024. All rights reserved.