laravel 4,2->5.0 升级 错误:Class 'app\Test' not found

第一步就有问题,错误:Class 'app\Test' not found: 请哪位前辈教我

刚学laravel一周,项目需要升级4.2->5.0,参考了网上不少文档,还是不清楚怎么做。
设想从简单入手,先升级一个简单项目,把项目做复杂以下再升级,直到覆盖升级的各个主要方面。

项目是只有一个表Test,文件目录
1)app\Test.php,Test.php中写了命名空间namespace App;
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Test extends Model {
protected $table = 'tests';
protected $hidden = array('password', 'remember_token');
}
2)app\Http\routes.php;
<?php
use app\Test as Test;

Route::get('tests', function()
{
$tests = Test::all();
return view('tests')->with('tests', $tests);
});
3)Resource\views\tests.blade.php
@extends('layout')
@section('content')
@foreach($tests as $test)
<p>{{ $test->name }}</p>
@endforeach
@stop
已邀请:

Only_One

赞同来自: 喵喵一片叶

楼上整解,当你使用use的时候注意区分 use 的不是路径,而是命名空间的名字,
比如test.php这个文件是在app/Models这个文件夹下
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model
class Test extends Model{
.............
}
?>
其他要使用这个model的地方需要
<?php namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Test;
class TestController extends Controller {

}
?>

喵喵一片叶

赞同来自:

routes.php中应该是use app\Test as Test;-->use App\Test;
命名空间是为了区分与原有类相同的自定义类|函数|变量引用,
use相当于import可以利用命名空间加载,前提是命名空间和文件路径按照psr-4绑定。

要回复问题请先登录注册