代码之家  ›  专栏  ›  技术社区  ›  Jeg Bagus

模型助手Zend

  •  4
  • Jeg Bagus  · 技术社区  · 14 年前

    据我所知,Zend框架中只有Action Helper和View Helper可用。

    有模型助手吗?

    或者我们如何实现模型助手?

    3 回复  |  直到 14 年前
        1
  •  2
  •   lawnjam    14 年前

    ZF中没有所谓的模型助手——但是如果您的模型正在访问一个数据库表,您可能希望将其创建为一个扩展zend_db_table_abstract的类。参见ZF手册中的示例: http://framework.zend.com/manual/en/zend.db.table.html

        2
  •  1
  •   ceiroa    12 年前

    在Zend框架中,没有为模型帮助器定义任何类似于视图帮助器的定义,但是您可以解决它,并且仍然保留应用程序设计(避免使用库文件夹)。

    我的方法是添加 帮手 文件夹 模型 一。然后你必须这样命名你的类:

    class Application_Model_Helper_DateHelper
    {
    ...
    }
    

    然后自动装弹机将负责找到并装弹。

    不幸的是,这个命名方式与您在视图文件夹中的命名方式稍有不同。在 意见 文件夹您可以创建一个名为 帮手 并使用命名约定,如:

    class Zend_View_Helper_DarkBlueMenu extends Zend_View_Helper_Abstract 
    {
    ...
    } 
    

    但是,如果您将文件夹命名在 模型 作为 帮手 然后它里面的类必须这样命名:

    class Application_Model_helpers_DateHelper
    {
    ...
    }
    
        3
  •  0
  •   Stéphane Gerber    13 年前

    首先,我在配置文件中添加此行,即application.in i:

    includePaths.library                    = APPLICATION_PATH "/../library"
    

    然后我添加一个类

    class App_Model_Helper {   
        public static function resultAggregation($results) {}
        //.... all the helper you need
    }
    

    放在一个文件里 ..library\App\Model\Helper.php

    这是我找到的唯一一种将我在模型中使用的代码进行分解的方法。

    然后可以从模型调用helper方法:

    App_Model_Helper::resultAggregation($results);
    

    我知道这会破坏我们的利益,所以如果有人有更好更清洁的解决方案,我会非常感谢。