繁体   English   中英

在 CodeIgniter 中查询的最佳方式

[英]Best way to query in CodeIgniter

我试图寻找这个问题的答案,但我有一个关于使用 codeigniter 过滤的问题。 下面的代码检查管理员是否登录显示查询中的每个想法(大脑)状态,可以是公开的或隐藏的,否则,它只显示具有公开状态的那些。

我想改变这一点,以继续向所有人显示具有公开状态的想法,并且只向登录者显示具有隐藏状态的想法。

if($this->ion_auth->is_admin()) {
    $brain_status = null;
}
else {
    $brain_status = $brain::PUBLIC_STATUS;
}

$brain_collection = $this->em->getRepository('Entities\Brain')
                             ->getListPerPage($brain::BRAIN_PER_PAGE, $page, $brain_status);

我尝试使用$this->session->user_id并且我不知道有多少其他语法而且我无法让它工作,每个想法在数据库中都有一个字段,当创建想法时记录 user_id 到做到这一点。

非常感谢任何帮助

为了完成这个问答对,我将我的评论转化为答案:

要求:

管理员可以看到所有想法:公开和隐藏,普通用户只能看到公开的想法

解决方案:

创建一个数据库列“已发布”,与每个想法(以及因此 user_id)相关联。 现在,您可以在您的视图中显示所有与published=1匹配的记录和那些仅与user_id 匹配的人(或管理员)的published=0记录。

如果用户已登录(您使用他们的 user_id 设置会话)并且此 user_id 与该想法的user_id 匹配,则您将其显示出来。 它的优点是您可以为用户实现发布或取消发布他们自己的想法,无需管理员干预,除非由管理员发布,否则仅对他们自己可见。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM