繁体   English   中英

Slim Framework自动包含ORM模型

[英]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.

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