我试图寻找这个问题的答案,但我有一个关于使用代码点火器过滤的问题。下面的代码检查管理员是否登录,显示查询中的每个想法(大脑(状态,可以是公开的,也可以是隐藏的,否则,它只显示具有公共状态的那些。
我想更改此设置以继续向所有人显示具有公共状态的想法,并且仅显示登录者具有隐藏状态的想法。
if($this->ion_auth->is_admin()) {
$brain_status = null;
}
else {
$brain_status = $brain::PUBLIC_STATUS;
}
$brain_collection = $this->em->getRepository('EntitiesBrain')
->getListPerPage($brain::BRAIN_PER_PAGE, $page, $brain_status);
我试过使用$this->session->user_id
,我不知道还有多少其他语法,我无法让它工作,每个想法在数据库中都有一个字段,当创建想法以实现此目的时,user_id被记录在该字段。
任何帮助都非常感谢
为了完成这个问答对,我将我的评论转化为答案:
要求:
管理员可以看到所有想法:公开和隐藏,普通用户只能看到公开的想法
解决方案:
创建一个数据库列"已发布",与每个想法相关联(因此user_id(。现在,您可以在视图中显示与所有人published=1
匹配的所有记录,以及仅published=0
与user_id匹配的人(或管理员(的记录。
如果用户已登录(您设置了与其user_id的会话(,并且如果此user_id与想法的user_id匹配,则显示它。它的优点是,您可以实现用户能够发布或取消发布自己的想法,而无需管理员干预,除非由管理员发布,否则只能对自己查看。