[英]Slim Framework autoinclude ORM Models
我想自动将我的所有自定义控制器和模型(Eloquent)包含在我的应用程序中,这样我就可以从我的应用程序的任何部分访问它们。
这就是为什么在我的Slim Frameworks索引文件中我有这两个foreach
循环:
// Include all controllers
foreach(glob("controllers/*.php") as $controller)
{
include $controller;
}
// Include all models
//foreach(glob("models/*.php") as $model)
//{
// include $model;
//}
但是这会产生一个问题,主要是第二个for循环,其中包含所有模型,我得到的错误是: C:\\..\\models\\model name.php Cannot re-declare..
我该如何解决这个问题?
我建议强烈使用Composer( http://getcomposer.org )来管理应用程序的依赖项。 使用Composer提供的自动加载器自动加载您的类,您不必自己管理它们,从而完全避免这个问题。
要在您的应用程序中访问这些类,请使用use关键字将Laravel的容器传递给您的路由:
$app->get('/', function () use ($app, $container) {});
您现在可以访问$ app实例中的任何内容以及路径中$ container的任何内容。
您是否尝试过使用require_once
而不是include
? 像这样的东西:
// Include all controllers
foreach(glob("controllers/*.php") as $controller)
{
require_once $controller;
}
// Include all models
foreach(glob("models/*.php") as $model)
{
require_once $model;
}
此外,还要检查它的类名,如果你有一个类控制器名User
,也是一个类模型名User
。 如果有这样的东西,你必须重命名它的类。 您不能注册具有相同名称的类 。 创建一些独特且冗长的东西,例如UserController
(用户模块的资源控制器)和UserModel
(用户模块的模型)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.