I'm using this for the first time.
I want create a new form to edit user detail.
I get an error of
Array to string conversion
,
If I remove the <?= validation_errors() ?>
, the view looks good
this is my controller code
public function edit_info($id)
{
helper('form');
if (! $this->request->is('post')){
return view('templates/header',['title'=>'what','id'=>$id])
. view('customers/edit_info')
. view('templates/footer');
}
$post = $this->request->getPost(['client_id','cli_name','cli_tel','email','address','password']);
if (! $this->validateData($post, [
'client_id' => 'required|max_length[25]|min_length[1]',
'cli_name' => 'required|max_length[25]|min_length[5]',
'cli_tel' => 'required|max_length[30]|min_length[9]',
'email' => 'required|max_length[50]|min_length[10]',
'address' => 'required|max_length[255]min_lenght[5]',
'password' => 'required|max_length[32]|min_length[8]',
])){
return view('templates/header',['title'=>'what','id'=>$id])
. view('customers/edit_info')
. view('templates/footer');
}
$client_model = model(CustomerModel::class);
$user_model = model(UserModel::class);
$userId = $user_model->getUserByClient($post['client_id']);
$client_model->update($post['client_id'],[
'client_Nom' => $post['client_name'],
'client_Tel' => $post['client_tel'],
'client_Email' => $post['email'],
'client_Adr' => $post['address'],
'client_status' => 1,
]);
$user_model->update($userId['id'],[
'client' => $post['client_id'],
'password' => $post['password']
]);
$name = $user_model->getName($userId['id']);
return view('templates/header',['name' => $name['name']])
. view('customers/success')
. view('templates/footer');
}
And my view code
<h2><?= esc($title)?></h2>
<?= session()->getFlashdata('error') ?>
<?= validation_errors() ?>
<form action="/customers/edit_info" method="post">
<?= csrf_field() ?>
<input type="hidden" name="client_id" value="<?= esc($id)?>" >
<label for="cli_name">Name</label>
<input type="text" name="cli_name" value="<?= set_value('cli_name') ?>" >
<br/>
<label for="tel">Tel</label>
<input type="text" name="tel" value="<?= set_value('tel') ?>" >
<br/>
<label for="email">Email</label>
<input type="email" name="email" value="<?= set_value('email') ?>" >
<br/>
<label for="address">Address</label>
<textarea name="address" cols="45" rows="4"><?= set_value('address') ?></textarea>
<br/>
<label for="password">Password</label>
<input type="password" name="password" value="<?= set_value('password') ?>" >
<br/>
<label for="again_pwd">Password Again</label>
<input type="password" name="again_pwd" onblur="check_both_pwd()" >
</form>