我将 Slim Framework
与 Laravel 的 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/