我想将一个变量从一个控制器函数传递给另一个控制器函数。换句话说,如何在同一个控制器中从其他函数访问变量?
由于
答案 0 :(得分:4)
正如Pascal所提到的,一种方法是在对象上设置属性:
class CategoriesController extends AppController
{
public $foo = '';
public function index()
{
$this->foo = 'bar';
}
public function view($id = null)
{
$baz = $this->foo;
$this->set('baz', $baz);
}
}
或者将其作为参数传递:
class CategoriesController extends AppController
{
public function index()
{
$foo = "bar";
$this->view($foo)
}
public function view($param)
{
$this->set('bar', $param);
}
}
答案 1 :(得分:2)
我注意到在后续调用控制器之后,在控制器中定义属性并不是持久的。
但是,在模型中定义属性在控制器函数调用之间是持久的。
答案 2 :(得分:1)
考虑到您的控制器是类,您有两个解决方案:
您应该使用哪种解决方案?
我认为这取决于具体情况: