我无法找到有关在视图单元格中使用$ this-> Cookie的任何信息。 当我编写这样的代码时,会出现错误:
命名空间App \ View \ Cell;
use Cake\View\Cell;
class CityCell extends Cell {
public function display() {
$this->Cookie->config('encryption', false);
$cookie = $this->Cookie->read('city');
}
}
,错误是: 错误:在null
上调用成员函数read()那么我们可以在视图单元格中使用cookie吗?
谢谢。
答案 0 :(得分:4)
当然这不起作用,查看单元格不支持使用组件,尽管它们可以被认为是“迷你控制器”,但它们实际上并不是CakePHP MVC系统中的控制器。
根据cookie是否加密,您可以使用请求对象在您的单元格中获取它们
$this->request->cookie('cookieName')
或
$this->request->cookies
另见 API > \Cake\Network\Request::cookie()
或者,如果他们 加密,你可以通过Cookie组件抓取它们,然后例如将它们从控制器传递到视图,最后进入像
<强>控制器强>
public function controllerAction() {
// ...
$this->set('cookie', $this->Cookie->read('cookieName'));
}
<强>细胞强>
public function display($cookie) {
// ...
}
查看强>
$this->cell('CellName', ['cookie' => $cookie]);
另见 Cookbook > Views > View Cells > Passing Arguments to a Cell