2014-02-10 48 views
0

在Codeigniter中,我創建了一些幫助程序,通過將組名稱作爲字符串或多個組的數組傳遞給某個/某些組,以檢查用戶。現在看來事情工作正常,如果我不通過userid $id參數。當我設置了$id一些用戶ID喜歡2它給下面消息:無法將標量值用作數組

Message: Cannot use a scalar value as an array 

這裏的錯誤是我所有的輔助功能,比使用。

獲取用戶的組

if (!function_exists('get_user_group')) 
{ 
    function get_user_group($id = FALSE) 
    { 
    $CI =& get_instance(); 

    // getting user groups by id or logged in 
    $object = $CI->ion_auth->get_users_groups($id)->result(); 

    foreach($object as $group): 
     $id[] = $group->id; 
     $groups[] = $group->name; 
    endforeach; 
    $groups = array_combine($id, $groups); 

    return $groups; 

    } 
} 

檢查用戶組中的/ s的

if (!function_exists('in_group')) 
{ 
    function in_group($groups, $id = FALSE) 
    { 
    if(is_array($groups)){ 

     foreach($groups as $group){ 
     //print_r($group); 
     if(in_array($group, get_user_group($id))){ 
      return TRUE; 
     } 
     } 

    } elseif(is_string($group)) { 
     if(in_array($group, get_user_group($id))){ 
     return TRUE; 
     } 
    } 
    } 
} 

使用

if(in_group(array('hr'), 2)){ 
    echo '<h1>IS IN THIS GROUP</h1>'; 
} else { 
    echo '<h1>IS NOT IN THIS GROUP</h1>'; 
} 
+1

在'get_user_group()',申報使用前的$ id陣列。但使用不同的名稱,如$ ids。因爲您已將$ FALSE分配給$ id。 –

+0

@kumar_v感謝您的反饋,但是您可以用某種示例來解釋嗎?我無法清楚地理解你的評論。謝謝.. –

+0

啊!得到它的工作...非常感謝。我可以在答案中發佈解決方案 –

回答

0

爲P er @kumar_v評論我已經修改了`get_user_group()助手,如下所示並解決了這個問題。

if (!function_exists('get_user_group')) 
{ 
    function get_user_group($uid = FALSE) 
    { 
    $CI =& get_instance(); 

    // getting user groups by id or logged in 
    $object = $CI->ion_auth->get_users_groups($uid)->result(); 

    foreach($object as $group): 
     $id[] = $group->id; 
     $groups[] = $group->name; 
    endforeach; 
    $groups = array_combine($id, $groups); 

    return $groups; 

    } 
} 

但願這有助於他人

相關問題