我创造了一个叫“歌”的新班。
类app/ClassName的位置,所以它的app/ so s.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model as Eloquent;
class Song extends Eloquent {
//put your code here
}我的路线:
Route::get('/','SongsController@index');我的SongsController.php位置:app/Http/controller/Http sController.php
想要对应我的数据库表名为“歌曲”。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Song;
class SongsController extends Controller
{
public function index()
{
$songs = Song::get();
return view('pages.songsList',compact('songs'));
}现在使用所有这些代码,我得到了一个简单的错误,如下所示,
FatalErrorException in SongsController.php line 19:
Class 'App\Song' not found如果我不加类的话,"Song“模型工作得很好。代码如下
DB::table('songs)->get();谢谢,对不起,我是拉瓦拉尔5号的新手。
发布于 2015-12-26 19:04:53
您的类名为Song,文件名为songs.php。您需要将文件命名为Song.php,以便找到它。
Composer生成一个PSR-4兼容的自动加载程序。
您会注意到在您的composer.json文件中有这样一个节
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},这告诉Autoloader,App命名空间中的任何内容都应该在app目录中找到。
调用类时,任何已注册的自动加载程序都会尝试加载类文件。这意味着除非另有规定,否则App\Song将查找app/Song.php。
从说明书中
当加载与完全限定类名相对应的文件时. 在完全限定的类名(“名称空间前缀”)中,一个或多个领先名称空间和子命名空间名称(不包括主导名称空间分隔符)的连续系列至少对应于一个“基本目录”。 “命名空间前缀”后面的连续子命名空间名称对应于“基本目录”中的子目录,其中名称空间分隔符表示目录分隔符。子目录名必须与子命名空间名称的大小写相匹配。 终止类名对应于以.php结尾的文件名。文件名必须与终止类名的大小写匹配。
发布于 2015-12-26 19:03:58
尝试以下命令:
composer dump-autoload -o编辑:这个命令用新的类更新自动加载程序。更多信息:https://getcomposer.org/doc/03-cli.md#dump-autoload
https://stackoverflow.com/questions/34474221
复制相似问题