目前我有一個權限表,用戶可以在其中使用復選框將 URL 鏈接的訪問權限授予或還原給具有特定角色的用戶。因此,為此我做了這樣的設定,當一個復選框被按下時,該復選框的 ID 和用戶的角色被插入到我的資料庫中,但由于某種原因我無法將它插入到資料庫中。我試過以下代碼:
控制器類:
public function permission()
{
if ($this->form_validation->run() == FALSE)
{
$main['permissions']=$this->users_model->get_permission_array();
$main['roles']=$this->users_model->get_roles_array();
foreach($main['roles'] as $key => $val):
$main['access'][$val['roles_id']]=$this->users_model->get_access_array(array('roles_id'=>$val['roles_id']));
endforeach;
$main['page'] = 'crm/users/permission';
$this->load->view('crm/index', $main);
}
if($this->input->post())
{
$loginid=false;
foreach($main['roles'] as $key => $val):
if(isset($_POST['roleid'.$val['roles_id']])){
$this->users_model->clear_access(array('roles_id'=>$val['roles_id']));
foreach($_POST['roleid'.$val['roles_id']] as $id => $access):
$data=array('roles_id'=>$val['roles_id'],'permissions_id'=>$access);
$loginid=$this->users_model->permission_access($data);
endforeach;
}
endforeach;
if($loginid){
$this->session->set_flashdata('message', '<p>Permission updated Successfully.</p>');
redirect('users/permission');
} else {
$this->session->set_flashdata('message', '<p>Error!! - Permission not updated.</p>');
redirect('users/permission');
}
}
}
型號分類:
function get_permission_array()
{
$query = $this->db->get("crm_client_permissions");
return $query->result_array();
}
function get_access_array($cond)
{
$this->db->select("permissions_id");
$this->db->where($cond);
$query = $this->db->get("crm_client_role_access");
return $query->result_array();
}
function clear_access($cond)
{
return $this->db->delete("crm_clients_access",$cond);
}
function permission_access($data)
{
return $this->db->insert("crm_clients_access",$data);
}
function get_roles_array($cond='')
{
if($cond !='') $this->db->where($cond);
$query = $this->db->get("crm_client_roles");
return $query->result_array();
}
查看類:
<div <?php echo form_open_multipart('users/permission'); ?>>
<table>
<?php if($permissions) $i=0;foreach($permissions as $key => $permission): ?>
<tr>
<td class="align-center"><?php echo $i; ?></td>
<td><?php echo $permission['page']; ?></td>
<td><?php echo $permission['url']; ?></td>
<?php foreach($roles as $rolekey => $role):
if($role['roles_id'] == 1)$checked = 'checked';
if(in_array($permission['permissions_id'],array_map('current',$access[$role['roles_id']])))
$checked = 'checked';
else
$checked = ''; ?>
<td align="center"><div class="checkbox checkbox-success m-t-0"><input type="checkbox" class="accessbox"
id="role<?php echo $rolekey ?>-<?php echo $key ?>" name="roleid<?php echo $role['roles_id']; ?>[]"
<?php echo $checked?> <?php echo ($role['roles_id'] == 1) ? 'disabled="disabled"' : '' ?> value="<?php echo $permission['permissions_id']; ?>" />
<label for="role<?php echo $rolekey ?>-<?php echo $key ?>"></label></div></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>
<div class="text-center">
<button type="submit" class="btn btn-info">Save Permission</button> <a href="<?php echo site_url('users/roles') ?>" class="btn btn-warning">Cancel</a>
</div>
<?php echo form_close(); ?> </div>
但在這里我總是得到錯誤!- 權限未更新。在我的視圖類中,這意味著它跳轉到我的控制器的 else 部分。我不確定我哪里出錯了
uj5u.com熱心網友回復:
問題似乎在這里$loginid=$this->users_model->permission_access($data);和這里return $this->db->insert("crm_clients_access",$data);。我的建議是:
- 使用 XDebug 除錯您的代碼并查看插入函式回傳的內容以及原因。
- 您也可以查找 php 日志以查看是否有任何資料庫錯誤。要使用錯誤日志,您需要找到 php.ini 組態檔并啟用“error_log = /path/to/fige.log”行。
- 您也可以查找資料庫資料以確定插入函式是否在 table 中創建新行
crm_clients_access,如果沒有?您需要檢查與資料庫主機:埠的連接配置,因此資料庫行程必須在這些主機:埠上可用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/357415.html
上一篇:這是什么日期格式?2021-10-04T08:19:54.000 04:00
下一篇:背景色做奇怪的事情
