This error after clicking 'Biodata' menu. I don't know if the issue lies with the if Call to undefined method App\Models\UserModel::escapeString. This error appears when im typing code [i][b]$id = $userModel->escapeString(esc($this->request->uri->getSegment(4)));[/b][/i]
[i][b]My Controller[/b][/i]
Code:
public function change_profile()
{
helper(['form', 'url']);
$userModel = new UserModel();
$id = $userModel->escapeString(esc($this->request->uri->getSegment(4)));
if ($this->request->getMethod() == 'post') {
$rules = [
'nama' => 'required|alpha_space|min_length[2]',
];
if ($this->validate($rules)) {
$params = [
'nama' => $userModel->escapeString(esc($this->request->getPost('nama'))),
];
$update = $userModel->update($id, $params);
if ($update) {
session()->setFlashdata('success', 'Berhasil edit data');
return redirect()->route('admin/user/change_profile');
} else {
session()->setFlashdata('danger', 'Gagal edit data');
return redirect()->route('admin/user/change_profile')->withInput();
}
} else {
$data['validation'] = $this->validator;
}
}
$data['title'] = 'Dokumen';
$data['user'] = $userModel->find($id);
return view('admin/users/profile', $data);
}
[i][b]My View [/b][/i]
Code:
<div class="container">
<div class="card">
<div class="card-body">
<form action="<?= base_url('admin/user/change_profile') ?>" method="POST" enctype="multipart/form-data">
<?= csrf_field(); ?>
<div class="form-group">
<label for="nama">Nama</label>
<input type="text" class="form-control" name="nama" id="nama" value="<?= $user['nama'] ?>" >
</div>
<input type="submit" value="Update" class="btn btn-info"/>
</form>
</div>
</div>
</div>
im using Codeigniter 4. Whats wrong with my code