CakePHP 2.x将用户消息发送到元素(';菜单';)
我想知道向每次加载页面时都会出现的元素发送数据的最佳方式 例如,一旦用户登录,我就必须恢复有关他的一些信息。使用SessionHelper恢复User.id、User.name等,如下所示:CakePHP 2.x将用户消息发送到元素(';菜单';),cakephp,menu,message,Cakephp,Menu,Message,我想知道向每次加载页面时都会出现的元素发送数据的最佳方式 例如,一旦用户登录,我就必须恢复有关他的一些信息。使用SessionHelper恢复User.id、User.name等,如下所示: <?php if( !$this->Session->check('Auth.User') ): ?> <div class="taille_btn"> <a href="/users/register"> &l
<?php if( !$this->Session->check('Auth.User') ): ?>
<div class="taille_btn">
<a href="/users/register">
<div class="link_head">Inscription</div>
</a>
</div>
<div class="taille_btn">
<a href="/users/login">
<div class="link_head">Connexion</div>
</a>
</div>
<?php else: ?>
<div class="name_user">
<a href="/users/view/<?= $this->Session->read('Auth.User.id'); ?>">
<?= $this->Session->read('Auth.User.prenom'); ?>
</a>
</div>
<?php endif; ?>
但是,如何恢复用户收到的所有消息?
更具体地说,我应该在哪里查询数据库?在AppController中?在组件中
谢谢你的帮助:)
例如,一旦用户登录,我就必须恢复有关他的一些信息。使用SessionHelper恢复User.id、User.name等,如下所示:
<?php if( !$this->Session->check('Auth.User') ): ?>
<div class="taille_btn">
<a href="/users/register">
<div class="link_head">Inscription</div>
</a>
</div>
<div class="taille_btn">
<a href="/users/login">
<div class="link_head">Connexion</div>
</a>
</div>
<?php else: ?>
<div class="name_user">
<a href="/users/view/<?= $this->Session->read('Auth.User.id'); ?>">
<?= $this->Session->read('Auth.User.prenom'); ?>
</a>
</div>
<?php endif; ?>
这不是一个好主意,最好是将用户数据从auth组件设置到视图。例如,会话中将不存在无状态身份验证
在AppController beforeRender()中,只需添加以下内容:
$this->set('userData', $this->Auth->user());
并根据需要访问视图中的$userData
。我已经写了一篇文章,这使得处理数据更加方便。对Cake3来说,这是它的一部分
但是,如何恢复用户收到的所有消息?更具体地说,我应该在哪里查询数据库?在AppController中?在组件中
如果在所有页面上都需要它,也可以在beforeRender()回调中使用:
$this->loadModel('Message')
// Your logic goes into the model method
$messages = $this->Message->byUser($this->Auth->user('id'));
// Set it to the view:
$this->set('messages', $messages);
如果您只想获取特定页面上的数据,请对Cake2使用requestAction(),在Cake3中,您可以对整个任务使用视图单元格
和不要对应用程序的链接执行此操作:
<a href="/users/register">
相反,您应该使用HtmlHelpers link()方法。如果你不这样做,路由将无法工作
例如,一旦用户登录,我就必须恢复有关他的一些信息。使用SessionHelper恢复User.id、User.name等,如下所示:
<?php if( !$this->Session->check('Auth.User') ): ?>
<div class="taille_btn">
<a href="/users/register">
<div class="link_head">Inscription</div>
</a>
</div>
<div class="taille_btn">
<a href="/users/login">
<div class="link_head">Connexion</div>
</a>
</div>
<?php else: ?>
<div class="name_user">
<a href="/users/view/<?= $this->Session->read('Auth.User.id'); ?>">
<?= $this->Session->read('Auth.User.prenom'); ?>
</a>
</div>
<?php endif; ?>
这不是一个好主意,最好是将用户数据从auth组件设置到视图。例如,会话中将不存在无状态身份验证
在AppController beforeRender()中,只需添加以下内容:
$this->set('userData', $this->Auth->user());
并根据需要访问视图中的$userData
。我已经写了一篇文章,这使得处理数据更加方便。对Cake3来说,这是它的一部分
但是,如何恢复用户收到的所有消息?更具体地说,我应该在哪里查询数据库?在AppController中?在组件中
如果在所有页面上都需要它,也可以在beforeRender()回调中使用:
$this->loadModel('Message')
// Your logic goes into the model method
$messages = $this->Message->byUser($this->Auth->user('id'));
// Set it to the view:
$this->set('messages', $messages);
如果您只想获取特定页面上的数据,请对Cake2使用requestAction(),在Cake3中,您可以对整个任务使用视图单元格
和不要对应用程序的链接执行此操作:
<a href="/users/register">
相反,您应该使用HtmlHelpers link()方法。如果你不这样做,路由将无法工作