如何从动作中调用控制器方法

How to call a controller method from an action

我是 CakePHP 的新手,我想在 CakePHP 3 的操作中使用一个方法(returns 一个值)。有点像这样:

public function specify(){
       if(isObject1){
     // do something}
 }
private isObject1($objname){
 return true;
}

正确的语法是什么?

蛋糕PHP是PHP

从相同 class 的另一个方法调用方法的方法与使用对象的任何 php 项目相同 - 通过使用 $this:

public function specify() {
    $something = 'define this';
    if($this->isObject1($something)) {
        // do something
    }
}

private function isObject1($objname) {
     return true;
}

The PHP manual 中有更多关于如何使用对象的信息。

@AD7six 的回答建议在控制器中添加一个方法,如果它不被用作动作,这是不正确的。

我认为您应该考虑在 vendor 下创建 classes 并将它们包含在您的控制器中并调用您的 class/method。约定是 vendor/$author/$package。您可以使用 composer 自动加载它们或使用 require 调用来包含您的文件。如果你不想创建一个 class 而只想拥有功能,那也可以做到。

一定要看看 cakephp 的 loading vendor files 部分。