【问题标题】:CakePHP - Access to database via bootstrap.phpCakePHP - 通过 bootstrap.php 访问数据库
【发布时间】:2011-01-24 23:34:53
【问题描述】:

你能帮我如何使用 cakephp 的 bootstrap.php 文件访问数据库吗?

tnx in adv!

更新:我真正的问题是下一个:

我如何使用不同的路由定义,关于 url。

即。我可以拥有(我不知道如何)菜单不同的网址,例如:

http://example.com/contents
http://example.com/kind
http://example.com/article
http://example.com/quote
http://example.com/master

等等等等

我会在数据库中定义所有这些 url。

那么,实现这一目标的最佳方法是什么?我是否需要在 routes.php 文件中进行数据库连接和查询,或者有更好的方法来实现这一点。

【问题讨论】:

  • 对不起,什么?你想做什么?
  • 我想执行一些sql查询,它们应该在bootstrap.php中定义和执行
  • 这是非常糟糕的做法。您的引导程序设置了环境,您应该尝试遵循 MVC 模式并从您的模型运行您的查询,当然还有来自您的控制器的模型。您可以了解有关 MVC 的更多信息
  • 好的,但是,当 url 和路由之间的关系在数据库中定义时,我如何为不同类型的 url 使用不同的路由?
  • 我不知道您为什么要“在数据库中定义 url 和路由之间的关系”,这是一件奇怪而荒谬的事情。看看我的回答,这种事情通常是如何处理的。如果这不令人满意,请描述您的数据库中的内容以及您想要做什么。

标签: php mysql cakephp cakephp-1.3 bootstrapping


【解决方案1】:

是否需要在 routes.php 文件中进行 db 连接和查询[?]

不,你没有,此时你不应该对数据库做任何事情。

只需定义一个将所有/* URL 发送到特定控制器的路由:

Router::connect('/:category', array('controller' => 'foos', 'action' => 'bar'));

然后在您的FoosController 中,您可以进行搜索:

function bar() {
    $category = $this->Foo->find('first', array(
        'conditions' => array('Foo.name' => $this->params['named']['category'])
    ));
    ...
}

请详细了解路由:http://book.cakephp.org/view/945/Routes-Configuration

【讨论】:

    【解决方案2】:

    您不需要将该路线保存在数据库中,您需要保存 url '菜单项'。忘记将所有内容路由到 /* 的想法,这是一个可怕的 hack。不过,您确实需要了解有关路由的更多信息。可以将路由保存到数据库,如下所示https://github.com/infinitas/infinitas/tree/dev/core/routes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 2012-09-23
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多