我有一个非常简单的routes.php文件:
<?php
Route::get('/', 'TracksController@index');
位于App \ Http \ Controllers的一个简单的TracksController.php文件:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Track as Track;
class TracksController extends Controller
{
function index(){
$tracks = Track::latest->get();
return view('tracks')->with(compact('tracks'));
}
}
但每当我尝试访问该路线时,我都会收到此错误:
ReflectionException in Route.php line 280:
Class App\Http\Controllers\TracksController does not exist
我不知道我还能做些什么。我有:
但似乎没有任何效果。
我甚至检查了作曲家生成的vendor / composer / autoload_classmap.php文件,我找不到那里的TracksController文件。
任何线索?
答案 0 :(得分:1)
所以我之前的回答是错误的,因为patricus提出了公共修饰语。问题出在您的$tracks = Track::latest->get();
更改为$tracks = Track::latest()->get();
,您应该设置。
答案 1 :(得分:0)
如果您使用的是Linux,则文件名和路径区分大小写。假设您没有更改默认composer.json
文件中的自动加载,PHP希望文件位于app\Http\Controllers\TracksController.php
。在您的问题中,您指定它位于App\...
。
假设这不是问题中的拼写错误,您需要将App
目录重命名为app
,或者需要更新composer.json
文件以便让它知道要从App
目录自动加载,而不是app
目录:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "App/"
}
},
答案 2 :(得分:0)
如果你使用的是资源控制器,你必须在routes/web.php文件中声明控制器的使用,如下:
value data
a 67
b 654
c 87
d 789
e 23
这里使用 Laravel 8。