我正在寻找一种在单元格内部使用组件的方法,有什么办法吗?
我试过了:
$this->loadComponent('SessionsActivity');
我的手机:
namespace App\View\Cell;
use Cake\Core\Configure;
use Cake\View\Cell;
class UserCell extends Cell
我的查询:
$user = $this->Users
->find()
->where([
'Users.id' => $this->request->id
])
->contain([
'Towns' => function ($q) {
return $q->find('short');
},
'Countries' => function ($q) {
return $q->find('short');
}
])
->map(function ($user) {
$user->online = $this->SessionsActivity->getOnlineStatus($user);
return $user;
})
->first();
答案 0 :(得分:2)
在CakePHP cells documentation使用相同的示例,假设您要显示已连接用户的收件箱。您希望访问Auth组件以获取已连接的用户ID。
AFAIK,Cells充当视图控制器,视图部件display.ctp
文件和控制器部件,您可以在其中访问模型以生成视图的数据。
我使用CakePHP 3.0并且$this->_registry
无效。
答案 1 :(得分:0)
你可以尝试:
$this->SessionsActivity = $this->_registry->load('SessionsActivity');
这是另一个问题,你是否应该在这里使用一个组件