php - Slim Framework 和 Eloquent ORM

标签 php laravel eloquent composer-php slim

我将 Slim FrameworkLaravel 的 Eloquent ORM 一起使用,这是我的代码:

User.php

class User extends \Illuminate\Database\Eloquent\Model
{
    protected $table = 'accounts';
}

index.php

require_once 'vendor/autoload.php';

// Models
include 'app/models/User.php';

$app = new \Slim\Slim();

// Database information
$settings = array(
    'driver' => 'mysql',
    'host' => '127.0.0.1',
    'database' => 'photo_mgmt',
    'username' => 'root',
    'password' => '',
    'collation' => 'utf8_general_ci',
    'prefix' => '',
    'charset'   => 'utf8',
);

$container = new Illuminate\Container\Container;
$connFactory = new \Illuminate\Database\Connectors\ConnectionFactory($container);
$conn = $connFactory->make($settings);
$resolver = new \Illuminate\Database\ConnectionResolver();
$resolver->addConnection('default', $conn);
$resolver->setDefaultConnection('default');
\Illuminate\Database\Eloquent\Model::setConnectionResolver($resolver);

$app->get('/', function () use ($app) {
    $users = \User::all();
    echo $users->toJson();
});

$app->run();

正如您在我的代码中看到的,我必须在我的 index.php 中包含 User.php 文件。但是如果我有多个模型怎么办?我可以只包括一个文件夹,所有模型也将包括在内,这样它就不会看起来很乱,包括我索引中的每个模型文件。

提前谢谢你。

更新: 我正在使用我看到的这段代码

foreach (glob("app/models/*.php") as $filename)
{
    include $filename;
}

有没有更简洁的方法?

最佳答案

您可以使用 Composer 自动包含项目中的类。假设您的 composer.json 文件位于 app 中。然后,您可以在 composer.json 中使用 classmap 属性自动将所有类包含在 models 中:

...
"require": {
    "php" : ">=5.4.0",
    "slim/slim" : "2.*",
    "illuminate/database" : "5.0.33",
    ...
},
"autoload": {
    "classmap" : [
        "models"
    ]
}

classmap 告诉 Composer 映射指定目录中的所有类。然后,您需要做的就是运行 composer update 以在您将新文件添加到此目录时更新 Composer 的包含列表。

关于php - Slim Framework 和 Eloquent ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33512676/

相关文章:

php - 在管理面板中显示前端的运输方式?

laravel - 保存时软删除 Eloquent 模型

php - 通过 cronjob 组织数据库和多选列

jquery - 如何让 jQuery 与 Laravel 一起工作?

php - 使用查询范围但具有不同的查询模型 - Laravel

php - Laravel belongsTo() 列命名问题

mysql - 在 Eloquent 中按类别列出用户的产品

php - Eloquent groupBy 在 Laravel 5.3 中使用有效的 SQL 查询生成 "SQLSTATE[42000]"

PHP:传递mysql查询变量而不将它们包含在 "or '中

php - 我可以从匿名 PL/SQL block 向 PHP 返回值吗?