代码之家  ›  专栏  ›  技术社区  ›  aWebDeveloper

cakephp$使用或请求操作

  •  1
  • aWebDeveloper  · 技术社区  · 14 年前

    我需要从6个模型中获取数据。我不能使用关联,因为它们不相关。那我该用什么呢 $uses request action 或任何其他解决方案

    6 回复  |  直到 14 年前
        1
  •  1
  •   Leo    14 年前

    我不同意特拉维斯的观点。最好使用loadModel,这样就可以确保在需要时加载所需的内容。谁说你不会扩展模型来包含不需要所有其他模型的方法?

    剪切和粘贴是程序员性能的一大提升。

        2
  •  2
  •   Young    14 年前

    我建议你用

    ClassRegistry::init("model_name")
    

    loadModel("model_name")
    

    相反。

    使用 User 模型

    $this->User = ClassRegistry::init('User');
    

    $this->loadModel('User');
    

    然后你可以做一些查询,比如

    $this->User->find("all");
    
        3
  •  2
  •   Yuri Ghensev    11 年前

    如果你只需要一个 find 如果需要联系,我建议使用 bindModel ,请参见 Creating-and-Destroying-Associations-on-the-Fly .

        4
  •  1
  •   A. M.    14 年前

    您可以尝试$uses,或者,如果您只想在需要的时间和地点加载模型,可以使用loadModel( http://book.cakephp.org/view/845/loadModel

        5
  •  1
  •   dr Hannibal Lecter    14 年前

    正如其他人所建议的,您应该使用 Controller::loadModel() .

    另外,我建议你做一些 YourController::_loadMyMegaData() 它将加载所有必要的模型并设置您的数据。这将避免意外加载这些模型,并在以后为您节省任何if块。

    另外,避免 requestAction() 只要有可能,它不仅丑陋,你还采取了性能打击。(当然有它的用处,但这种情况并不经常发生:)

        6
  •  0
  •   vegemite4me    11 年前

    您可以使用以下选项:

    $this->loadModel('ModelName'); 
    $this->ModelName->find();