嵌套MVCGrid& amp;的探路者问题MVCForm和解决方案

时间:2012-01-24 16:48:27

标签: atk4

我正在使用这样的结构来支持从上层相关表向下移动到较低级别表。通常,想法是在当前视图中编辑记录,或者通过使用扩展器列列出同一视图的子记录。

从结构上讲,它是客户 - >客户产品 - >产品详情 - >产品活动。

  Customer     MVCgrid                               ok
    edit           MVCform (via expander column)     ok
    view products  MVCgrid (via expander column)     ok
        edit a product        MVCform                pathfinder error
        view products details MVCGrid                pathfinder error
              edit product details     MVCform
              view product activity    MVCGrid

此结构在外层工作。我可以编辑客户记录或按预期查看客户产品。当我点击“编辑产品”(MVCform)或“查看产品详细信息”(MVCgrid)时,我收到了一个路径查找器错误:

PathFinder_Exception

无法包含cvCustProducts \ cvuidcontrol \ cvuiddetails.php

“cvuiddetails”是声明为“function page_cvuiddetails()”的函数名称

我检查并重新检查了我能想到的一切。在我看来,函数名称不可用,并且正在调用pathfinder以找出页面“cvuiddetails”所在的位置并且显示为空。

任何建议都将不胜感激。

===== [溶液] ======================================= =====

十分钟后.........

阿哈!!!!

以下是几分钟前我刚刚发布的问题的解决方案,我希望其他人都觉得这很有用:

嵌套函数时,在函数名前加上调用函数的名称

function page_cvuidcontrol()包含调用“cvuiddetails”的扩展器列。

原始功能名称:功能page_cvuiddetails()

新功能名称:function page_cvuidcontrol_cvuiddetails()

1 个答案:

答案 0 :(得分:0)

如果您有文件page/cvuidcontrol.php,则可以在该文件中定义page_cvuiddetails()函数。这称为子页面。

但是,请注意并确保不要将功能命名为类名。这是一个非常不幸的巧合,几次给了我一些问题。

class page_details {
    function page_details(){
    }
}

这不起作用,因为PHP认为此函数是构造函数。