首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lumen:在Lumen项目中使用Eloquent

Lumen:在Lumen项目中使用Eloquent
EN

Stack Overflow用户
提问于 2015-08-11 19:54:32
回答 3查看 3.7K关注 0票数 0

我正在为我的Lumen项目使用Eloquent,在没有评论之后

代码语言:javascript
复制
$app->withEloquent();

在bootstrap/app.php文件中,我在我的项目中为Model类创建了数据库/模型文件夹。每当我在数据库/模型中添加一个类,并尝试使用它时,它会抛出异常,类找不到异常,但是在运行composer dump-autoload之后,这个类就可以使用了。我如何自动化这一点,就像在数据库/模型中添加类模型并使用它,就像我们在Laravel中所做的那样。

这是我的Model类。

代码语言:javascript
复制
<?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',
    );
}

这是我的控制器,我想在这里使用这个模型。

代码语言:javascript
复制
<?php namespace App\Http\Controllers;

use App\Post;

class ContentController extends BaseController{
    public function posts(Request $request){
        return Post::all();
    }
}

这是我的composer.json文件

代码语言:javascript
复制
{
    "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"
    }
}
EN

回答 3

Stack Overflow用户

发布于 2015-08-11 20:31:52

将您的模型从database/models移动到app/models,并将名称空间更改为App\Models,一切都应该正常工作。

使用composers类映射查找类时,composer仅在运行composer dump-autoload时缓存路径。通过使用PSR-4类加载,composer可以通过查看文件的名称空间来查找文件。您的App名称空间被配置为位于路径app中,composer开始在那里查找它们。

票数 2
EN

Stack Overflow用户

发布于 2015-08-11 19:57:56

你应该把你的模型保存在app/目录中,由于基本的流明composer.json,它是自动的PSR-4类自动加载

票数 0
EN

Stack Overflow用户

发布于 2018-02-20 14:42:08

我认为你应该保持模型在app\Models中,如果你想尝试移动基本的Model文件夹,只需尝试添加文件夹在PSR-4的自动加载部分,并指定它们的命名空间

代码语言:javascript
复制
{
"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"
}
}

代码语言:javascript
复制
{
"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"
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31941093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档