Arkadaşlar CodeIgniter 4 ile yetkilendirme sistemi yapıyorum. Örneğin 35 id ye sahip grubu ve gruba ait users, view yetkisini güncelle dediğimde gruba ait tüm yetkilerin view leri 1 olarak güncelleniyor. Ben sadece tikledigim yetkinin güncellenmesini istiyorum. Yardımcı olursanız mutlu olurum.

Alıntı

<?php namespace AppModels;

use CodeIgniterModel;

class GroupPermitModel extends Model
{

protected $table = 'permit_group';
protected $primaryKey = 'permit_group_id';
protected $allowedFields = ['permit_group_view', 'permission_id', 'groups_id', 'permit_group_edit', 'permit_group_update', 'permit_group_delete'];

public function GroupPermitJoin()
{

return $this->builder($this->table)
->select('*')
->join('groups', 'groups.group_id = permit_group.groups_id', 'left')
->join('permissions', 'permissions.permission_id = permit_group.permission_id', 'left')
->get()->getResultArray();


}
}


<?php namespace AppControllersAdmin;

use AppModelsGroupModel;
use AppModelsPermissionModel;
use AppModelsGroupPermitModel;
use AppModelsLanguageModel;
use AppControllersBaseController;
use CodeIgniterController;

class Groups extends BaseController
{

public function __construct(){

$this->group = model(GroupModel::class);
$this->permission = model(PermissionModel::class);
$this->permit = model(GroupPermitModel::class);
$this->lang = model(LanguageModel::class);
helper('form', 'url');

}

public function edit($slug = null)
{

$data = [
'permitgroup' => $this->permit->GroupPermitJoin(),
'permit' => $this->permission->findAll(),
'lang' => $this->lang->findAll(),
'edit' => $this->group->GroupSlug($slug),
];
return view('admin/groups/group_edit',$data);
}


public function update()
{
$group_id = $this->request->getPost('group_id');
$permit_group_id = $this->request->getPost('permit_group_id');

$data = [
'group_name' => $this->request->getPost('group_name'),
'group_slug' => mb_url_title($this->request->getPost('group_name'), '-', TRUE),
'group_langid' => $this->request->getPost('group_langid'),
'group_description' => $this->request->getPost('group_description'),
];

if($this->group->update($group_id, $data)){

$module_id = $group_id;


$view = empty($_POST['permission'][$module_id]['permit_group_view']) ? 0 : 1;
$edit = empty($_POST['permission'][$module_id]['permit_group_edit']) ? 0 : 1;
$update = empty($_POST['permission'][$module_id]['permit_group_update']) ? 0 : 1;
$delete = empty($_POST['permission'][$module_id]['permit_group_delete']) ? 0 : 1;

$permData = [
'permit_group_view' => $view,
'permit_group_edit' => $edit,
'permit_group_update' => $update,
'permit_group_delete' => $delete,
];


$this->permit->where('groups_id', $group_id)->update($permit_group_id,$permData);

session()->setFlashdata('info', 'Group privileges have been successfully updated.');
return redirect()->to(base_url('admin/groups'));

}
}
}
View de aşağıdaki gibi


<?= view_cell('AppControllersAdminHome::header') ?>
</br>
<style>
/* Stylesheet*/
table{
border-collapse: collapse;
padding: 20px;
}
td{
border: 1px solid #000;
padding: 20px;
}
.checkbox{
width: 200px;
background-color:#098043;
color:#fff;
margin: auto;
}
input{
margin: auto;
/*setting margin to auto of the cheeckbox*/
display: flex;/*Flex box property*/
}
</style>
<div class="content-wrapper">
<?php
if(!empty(session()->getFlashdata('info'))){
echo '<div class="alert alert-success alert-dismissible">';
echo'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>';
echo' <h5><i class="icon fas fa-check"></i> Successful!</h5>';
echo session()->getFlashdata('info');
echo'</div>';
}
?>
<?php
if(!empty(session()->getFlashdata('no'))){
echo '<div class="alert alert-danger alert-dismissible">';
echo'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>';
echo' <h5><i class="icon fa fa-exclamation-triangle"></i> Unsuccessful!</h5>';
echo session()->getFlashdata('no');
echo'</div>';
}
?>
<section class="content">
<form role="form" action="<?= base_url('admin/update-group') ?>" method="post" enctype="multipart/form-data">
<div class="row">
<div class="col-md-12">
<div class="card card-success">
<div class="card-header">
</div>
<div class="card-body">
<div class="form-group">
<label><?= _("Group Name") ?></label>
<input type="text" name="group_name" class="form-control" value="<?= esc($edit['group_name']); ?>">
</div>
<div class="form-group">
<label><?= _("Group Description") ?></label>
<textarea id="summernote" name="group_description" class="form-control" rows="4"><?= esc($edit['group_description']); ?></textarea>
</div>
<div class="form-group">
<label><?= _("Choose a Language") ?></label>
<select class="custom-select" name="group_langid">
<option selected><?= _("Choose a Language") ?></option>
<?php foreach ($lang as $key => $lan) { ?>
<option value="<?= esc($lan['lang_id']) ?>" <?php if(esc($edit['group_langid']) == esc($lan['lang_id'])){ echo 'selected'; } ?>><?= esc($lan['lang_name']) ?></option>
<?php } ?>
</select>
</div>
<div class="card">
<div class="card-body">
<table id="example2" class="table table-bordered table-hover">
<thead>
<tr>
<th><?= _("Permissions") ?></th>
<th><?= _("View") ?></th>
<th><?= _("Edit") ?></th>
<th><?= _("Update") ?></th>
<th><?= _("Delete") ?></th>
</tr>
</thead>
<tbody>

<?php
foreach($permitgroup as $prmgrp){
if(esc($edit['group_id']) == esc($prmgrp['groups_id'])){
?>
<input type="hidden" name="permit_group_id" value="<?= esc($prmgrp['permit_group_id']) ?>" class="form-control">
<tr>
<td><?= esc($prmgrp['permission_name']) ?></td>
<td>
<input type="checkbox" name="permission[<?= esc($prmgrp['group_id']) ?>][permit_group_view]" value="1" <?php if(esc($prmgrp['permit_group_view']) == 1){ echo 'checked'; } ?>>
</td>
<td>
<input type="checkbox" name="permission[<?= esc($prmgrp['group_id']) ?>][permit_group_edit]" value="1" <?php if(esc($prmgrp['permit_group_edit']) == 1){ echo 'checked'; } ?>>
</td>
<td>
<input type="checkbox" name="permission[<?= esc($prmgrp['group_id']) ?>][permit_group_update]" value="1" <?php if(esc($prmgrp['permit_group_update']) == 1){ echo 'checked'; } ?>>
</td>
<td>
<input type="checkbox" name="permission[<?= esc($prmgrp['group_id']) ?>][permit_group_delete]" value="1" <?php if(esc($prmgrp['permit_group_delete']) == 1){ echo 'checked'; } ?>>
</td>
</tr>
<?php } ?>
<?php } ?>
</tfoot>
</table>
</div>
</div>

<input type="hidden" name="group_id" value="<?= esc($edit['group_id']) ?>" class="form-control">
<button type="submit" class="btn btn-success float-left"><?= _("Update") ?></button>
</div>
</div>
</div>
</div>

</form>
</section>
</div>
</br></br></br></br></br></br></br></br></br></br>
<?= view_cell('AppControllersAdminHome::footer') ?>