【问题标题】:'Set' in Components of Cake PHPCake PHP 组件中的“设置”
【发布时间】:2012-04-19 14:00:25
【问题描述】:

如何在 cake php 组件中使用Set 函数?

class TestComponent extends Object
{
  //etc

 $this->set('User', $user); 

 }

我收到一个错误

Fatal error: Call to undefined method TestComponent::set() 

如何纠正?

【问题讨论】:

    标签: cakephp cakephp-1.3


    【解决方案1】:
    function startup($controller) { $this->controller = $controller }
    function something() {
        $this->controller->set('User',$user);
    }
    

    Cake 将 Controller 引用传递给组件的启动函数。您需要在组件中保留一个引用,以便以后在自定义函数中使用。

    请看这里http://book.cakephp.org/1.3/en/view/996/Creating-Components#MVC-Class-Access-Within-Components-998

    【讨论】:

    • 这里如何设置AppController?
    • AppController 是什么意思?
    • 一件小事:始终使用正确的参数语法:public function startup(Controller $controller) {} - 好的,无论如何,对于 2.x(他似乎仍在使用 1.3,sry)
    【解决方案2】:

    由于大多数时候组件方法是从控制器调用的,因此您可以从控制器中的函数返回值。 如果你想为你的视图层设置变量,那么可以使用这个

    $this->Controller->set('varForView',varValue);
    

    这是因为组件有一个用于实例化它的 Controller 实例的类变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-28
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多