我正在为我的Lumen项目使用Eloquent,在没有评论之后
$app->withEloquent();在bootstrap/app.php文件中,我在我的项目中为Model类创建了数据库/模型文件夹。每当我在数据库/模型中添加一个类,并尝试使用它时,它会抛出异常,类找不到异常,但是在运行composer dump-autoload之后,这个类就可以使用了。我如何自动化这一点,就像在数据库/模型中添加类模型并使用它,就像我们在Laravel中所做的那样。
这是我的Model类。
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model{
protected $table = 'posts';
protected $fillable = array(
'id',
'p_id',
'username',
'title',
'uri',
'source',
'points',
'status',
'language',
'type',
);
}这是我的控制器,我想在这里使用这个模型。
<?php namespace App\Http\Controllers;
use App\Post;
class ContentController extends BaseController{
public function posts(Request $request){
return Post::all();
}
}这是我的composer.json文件
{
"name": "laravel/lumen",
"description": "The Laravel Lumen Framework.",
"keywords": ["framework", "laravel", "lumen"],
"license": "MIT",
"type": "project",
"require": {
"laravel/lumen-framework": "5.1.*",
"vlucas/phpdotenv": "~1.0",
"illuminate/mail": "5.1.*"
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"fzaninotto/faker": "~1.0"
},
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/",
"database/models"
]
},
"autoload-dev": {
"classmap": [
"tests/"
]
},
"config": {
"preferred-install": "dist"
}
}发布于 2015-08-11 20:31:52
将您的模型从database/models移动到app/models,并将名称空间更改为App\Models,一切都应该正常工作。
使用composers类映射查找类时,composer仅在运行composer dump-autoload时缓存路径。通过使用PSR-4类加载,composer可以通过查看文件的名称空间来查找文件。您的App名称空间被配置为位于路径app中,composer开始在那里查找它们。
发布于 2015-08-11 19:57:56
你应该把你的模型保存在app/目录中,由于基本的流明composer.json,它是自动的PSR-4类自动加载
发布于 2018-02-20 14:42:08
我认为你应该保持模型在app\Models中,如果你想尝试移动基本的Model文件夹,只需尝试添加文件夹在PSR-4的自动加载部分,并指定它们的命名空间
{
"name": "laravel/lumen",
"description": "The Laravel Lumen Framework.",
"keywords": ["framework", "laravel", "lumen"],
"license": "MIT",
"type": "project",
"require": {
"laravel/lumen-framework": "5.1.*",
"vlucas/phpdotenv": "~1.0",
"illuminate/mail": "5.1.*"
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"fzaninotto/faker": "~1.0"
},
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/",
"database/models"
]
},
"autoload-dev": {
"classmap": [
"tests/"
]
},
"config": {
"preferred-install": "dist"
}
}至
{
"name": "laravel/lumen",
"description": "The Laravel Lumen Framework.",
"keywords": ["framework", "laravel", "lumen"],
"license": "MIT",
"type": "project",
"require": {
"laravel/lumen-framework": "5.1.*",
"vlucas/phpdotenv": "~1.0",
"illuminate/mail": "5.1.*"
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"fzaninotto/faker": "~1.0"
},
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Models\\:"database/models"
},
"classmap": [
"database/",
]
},
"autoload-dev": {
"classmap": [
"tests/"
]
},
"config": {
"preferred-install": "dist"
}
}https://stackoverflow.com/questions/31941093
复制相似问题