繁体   English   中英

流明:在流明项目中使用口才

[英]Lumen: Using Eloquent in Lumen Project

取消评论后,我将Eloquent用于我的Lumen项目

$app->withEloquent();

在bootstrap / app.php文件中,我已经在我的项目中为Model类创建了database / models文件夹。 每当我在数据库/模型中添加一个类并尝试使用它时,它都会引发并且未找到类异常,但是在运行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"
    }
}

将您的模型从database/models移至app/models ,并将名称空间更改为App\\Models ,一切都应正常进行。

使用composers classmap查找类时,composer仅在运行composer dump-autoload时缓存路径。 通过使用PSR-4类加载,作曲家可以通过查看其命名空间来找到文件。 您的App命名空间已配置为位于路径app ,并且作曲家开始在其中查找它们。

由于基本流明composer.json,您应该将模型保存在app /目录中,作为自动PSR-4类自动加载

我想如果您想移动bas Model文件夹,应该将模型保留在app\\Models ,只需尝试在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"
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM