cakephp 3 并使用 Cookie 查看单元格
cakephp 3 and view cells with use of Cookie
我找不到任何关于在视图单元格中使用 $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 吗?
谢谢。
那当然不行,视图单元不支持组件的使用,虽然它们可以被认为是"mini-controllers",但在CakePHPs 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
我找不到任何关于在视图单元格中使用 $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 吗?
谢谢。
那当然不行,视图单元不支持组件的使用,虽然它们可以被认为是"mini-controllers",但在CakePHPs 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