Laravel 5没有找到雄辩的模型

Aus*_*gen 6 php laravel eloquent laravel-4 laravel-5

我是Laravel的新手,我无法加载我的模型以便为数据库播种.我尝试过composer.json的Laravel 4方法和Laravel 5 PSR-4.

DatabaseSeeder.php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder {

    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        \App\Models\Client::truncate();
        \App\Models\Module::truncate();
        \App\Models\ModuleConnection::truncate();

        Model::unguard();

        $this->call('ClientsTableSeeder');
        $this->call('ModulesTableSeeder');
        $this->call('ConncetionsTableSeeder');
    }

}
Run Code Online (Sandbox Code Playgroud)

Client.php

这些都在app\Models中,但我在Apps.php旁边的应用程序中尝试过它们

namespace App\Models;
use Illuminate\Database\Eloquent\Model as Eloquent;

class Client extends \Eloquent {
    proteced $fillable = ['id', 'name', 'email', 'created_at', 'updated_at'];
}
Run Code Online (Sandbox Code Playgroud)

Module.php

namespace App\Models;
use Illuminate\Database\Eloquent\Model as Eloquent;

class Module extends \Eloquent {
    proteced $fillable = ['id', 'name', 'created_at', 'updated_at'];
}
Run Code Online (Sandbox Code Playgroud)

ModuleConnection.php

namespace App\Models;
use Illuminate\Database\Eloquent\Model as Eloquent;

class ModuleConnection extends \Eloquent {
    proteced $fillable = ['id', 'clientid', 'moduleid', 'apiconn', 'created_at', 'updated_at'];
}
Run Code Online (Sandbox Code Playgroud)

错误

这是我运行php artisan db:seed的时候

[Symfony\Component\Debug\Exception\FatalErrorException]  
Class 'App\Models\Client' not found 
Run Code Online (Sandbox Code Playgroud)

我确定这是一个愚蠢的东西,我作为一个初学者失踪了!谢谢!

Ant*_*iro 1

首先,您可能必须扩展 Eloquent 而不是 \Eloquent。当您在用法中添加 \ 时,您是在告诉 PHP 在其根命名空间中查找 Eloquent。所以:

namespace App\Models;
use Illuminate\Database\Eloquent\Model as Eloquent;

class Module extends Eloquent {
    proteced $fillable = ['id', 'name', 'created_at', 'updated_at'];
}
Run Code Online (Sandbox Code Playgroud)

其次,不需要执行 a 操作composer dumpautoload,因为您的 App 命名空间已包含在 Laravel 安装中:

"autoload": {
    ...
    "psr-4": {
        "App\\": "app/"
    }
},
Run Code Online (Sandbox Code Playgroud)

这告诉自动加载器在路径中搜索命名空间类app/

您必须检查文件 Client.php 是否位于该文件夹中:

app/Models/Client.php
Run Code Online (Sandbox Code Playgroud)

并按原样命名。除此之外,我在您的代码中没有看到任何问题。