05-30-2020, 09:53 PM
Hola
Tengo el siguiente problema en CI4, cuando quiero generar un nuevo usuario en mi db desde un formulario, devuelve el siguiente error:
Conversión de matriz a cadena
pero al editar / modificar este usuario, lo guarda en la base perfectamente sin errores
Este es mi código:
Tengo el siguiente problema en CI4, cuando quiero generar un nuevo usuario en mi db desde un formulario, devuelve el siguiente error:
Conversión de matriz a cadena
pero al editar / modificar este usuario, lo guarda en la base perfectamente sin errores
Este es mi código:
PHP Code:
<?php
echo form_open('/home/guarda');
if(isset($users)){
$name=$users[0]['name'];
$email=$users[0]['email'];
}
else{
$name="";
$email="";
}
?>
<div class="form-group">
<?php
echo form_label('Nombre','name');
echo form_input(array('name'=>'name','placeholder'=>'Nombre','class'=>'form-control','value'=>$name));
echo "<br>";
echo form_label('Email','email');
echo form_input(array('name'=>'email','placeholder'=>'Email','class'=>'form-control','value'=>$email));
echo "<br>";
echo form_submit('guarda','Guardar','class="btn btn-primary"');
if(isset($users)){
echo form_hidden('id',$users[0]['id']);
}
?>
</div>
<?php
echo form_close();
?>
PHP Code:
public function guarda(){
$userModel=new UserModel($db);
$request= \Config\Services::request();
$data=array(
'name'=>$request->getPostGet('name'),
'email'=>$request->getPostGet('email'),
);
if($request->getPostGet('id')){
$data['id']=$request->getPostGet('id');
}
if($userModel->save($data)===false){
var_dump($userModel->errors());
}
if($request->getPostGet('id')){
$users=$userModel->find([$request->getPostGet('id')]);
$users=array('users'=>$users);
$estructura=view('estructura/header').view('estructura/formulario',$users);
}
else{
$users=$userModel->findAll();
$users=array('users'=>$users);
$estructura=view('estructura/header').view('estructura/body',$users);
}
return $estructura;
}
public function editar(){
$userModel=new UserModel($db);
$request= \Config\Services::request();
$id=$request->getPostGet('id');
$users=$userModel->find([$id]);
$users=array('users'=>$users);
$estructura=view('estructura/header').view('estructura/formulario',$users);
return $estructura;
}
PHP Code:
<?php
namespace App\Models;
use CodeIgniter\Model;
class UserModel extends Model
{
protected $table = 'users';
protected $primaryKey = 'id';
protected $returnType = 'array';
protected $useSoftDeletes = true;
protected $allowedFields = ['name', 'email'];
protected $useTimestamps = false;
protected $createdField = 'created_at';
protected $updatedField = 'updated_at';
protected $deletedField = 'deleted_at';
# -----------------------------------------------------------------
# Pongo todas las reglas de validacion
# -----------------------------------------------------------------
protected $validationRules = array(
# Valido el name
# le digo que sea requerido y (|) que sea alfanumerico y que tenga un minimo de 3 caracteres
'name' => 'required|alpha_numeric_space|min_length[3]',
# Valido el email, que sea requerido, de timo email y unico
'email' => 'required|valid_email|is_unique[users.email]'
);
# -----------------------------------------------------------------
# Si Falla alguna de las validaciones entonces enviame este mensaje
# -----------------------------------------------------------------
protected $validationMessages = [
'email' => [
'is_unique' => 'Ese correo ya se encuentra registrado'
]
];
protected $skipValidation = false;