【发布时间】:2013-08-16 19:15:09
【问题描述】:
我有一个块代码:
// Creat a object
$privilege = new Privilege();
// Get all privileges
$privilege->get_iterated();
$privileges = $privilege->all_to_array(array('id', 'name', 'description'));
// Get user privileges
$user_privileges = $privilege->get_user_privileges(array('id' => (int) $id), FALSE);
// If user has the privilege which is marked as 1,
// otherwise marked as 0
foreach ($privileges as $key => $item) {
foreach ($user_privileges as $value) {
$privileges[$key]['has_privilege'] = (in_array($value, $item) == TRUE) ? 1 : 0;
}
}
我的问题: $privileges 包含 cms 中的所有权限,$user_privileges 包含特定用户的权限。我将 $privileges 与 $user_privileges 进行比较:如果用户具有标记为 1 的权限,否则标记为 0,则我解析为视图
$this->_data['privileges'] = $privileges;
鉴于,我必须使用 $privileges['...'](array) 来显示结果,但我想使用:$privileges->....(object ) 去做。
我该怎么做?非常感谢。
【问题讨论】:
-
你不能将过滤移动到 sql 域,只选择用户可用的
Privilage实例吗?例如,如果您可以从get_user_privilages为用户返回PrivilageID,那么它只是一个where_in()。另外,为什么要使用 continious-integration 标签? -
所以在这种情况下,我不能使用对象并仍然像上面的代码一样使用数组。
标签: php codeigniter codeigniter-datamapper