Cakephp 3.6。如何从控制器调用助手查询?
Cakephp 3.6. How to call a helpers query from a controller?
我的主页上有一个带有类别列表的小型搜索表单。
我使用助手查询数据库以获取所有类别。这很好,效果很好。
现在我想根据执行的搜索使用更新的类别列表来更新类别 select。
这意味着,我需要使用给定的 $variable 在 helper 中调用查询以 运行 新查询和 return 新数据。
但这是我现在关心的问题。
我不能从 PagesController 中调用助手,对吗?
那么正确的方法是
- 有一个助手调用可以在所有视图中即时使用 selecting 数据库数据?
- 解决对控制器的 ajax 调用并使用来自助手的查询?
任何建议将不胜感激!
谢谢!
简答:
如果您在控制器和视图中都需要代码,则需要将代码移动到 Table class 而不是助手 class 中。
长答案:
您在助手中创建的代码需要移动到相关的 Table class 中,这将获取数据。
然后在您的视图和控制器中,您将使用您在 Table class.
中创建的新方法
例如,在您的类别中Table class 您可以添加一个名为的方法:
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
}
现在,您可以在视图或控制器中使用此
$Categories = TableRegistry::get('Categories');
$Categories->fetchCategoryData();
//or
$Categories->updateCategoryData();
我的主页上有一个带有类别列表的小型搜索表单。 我使用助手查询数据库以获取所有类别。这很好,效果很好。
现在我想根据执行的搜索使用更新的类别列表来更新类别 select。
这意味着,我需要使用给定的 $variable 在 helper 中调用查询以 运行 新查询和 return 新数据。
但这是我现在关心的问题。 我不能从 PagesController 中调用助手,对吗?
那么正确的方法是 - 有一个助手调用可以在所有视图中即时使用 selecting 数据库数据? - 解决对控制器的 ajax 调用并使用来自助手的查询?
任何建议将不胜感激! 谢谢!
简答:
如果您在控制器和视图中都需要代码,则需要将代码移动到 Table class 而不是助手 class 中。
长答案:
您在助手中创建的代码需要移动到相关的 Table class 中,这将获取数据。
然后在您的视图和控制器中,您将使用您在 Table class.
中创建的新方法例如,在您的类别中Table class 您可以添加一个名为的方法:
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
}
现在,您可以在视图或控制器中使用此
$Categories = TableRegistry::get('Categories');
$Categories->fetchCategoryData();
//or
$Categories->updateCategoryData();