簡體   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