【问题标题】:Cakephp 3.6. How to call a helpers query from a controller?蛋糕PHP 3.6。如何从控制器调用助手查询?
【发布时间】:2018-10-04 12:57:34
【问题描述】:

我的主页上有一个带有类别列表的小型搜索表单。 我使用助手查询数据库以获取所有类别。这很好,效果很好。

现在我想根据执行的搜索使用更新的类别列表来更新选择的类别。

这意味着,我需要使用给定的 $variable 在帮助程序中调用 query 来运行新查询并返回新数据。

但这是我现在关心的问题。 我不能从 PagesController 中调用助手,对吧?

那么正确的方法是什么 - 在所有选择数据库数据的视图中都有一个可以即时使用的助手调用? - 处理对控制器的 ajax 调用并使用来自帮助程序的查询?

我们将不胜感激任何建议! 谢谢!

【问题讨论】:

    标签: ajax cakephp-3.0 helper


    【解决方案1】:

    简答:

    如果您在 Controller 和 View 中都需要,您的代码需要移到 Table 类而不是 Helper 类中。

    长答案:

    您在帮助程序中创建的代码需要移动到相关的 Table 类中,这将获取数据。

    然后在您的视图和控制器中,您将使用您在 Table 类中创建的新方法。

    例如,在您的 CategoriesTable 类中,您可以添加一个名为:

    public function fetchCategoryData(){
       //TODO: Custom code that will fetch the category data like...
       //return $this->find();
    }
    
    public function updateCategoyData($args){
       //TODO: Custom code to update your category data
    }
    

    现在,在 View 或 Controller 中你都可以使用它

    $Categories = TableRegistry::get('Categories');
    
    $Categories->fetchCategoryData();
    //or
    $Categories->updateCategoryData();
    

    【讨论】:

    • 非常感谢,我这就去!幸运的是,我一开始就解决了这个问题 :-) 谢谢!!!!
    猜你喜欢
    • 2019-12-05
    • 2012-06-02
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    相关资源
    最近更新 更多