[英]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.