Criando CRUD
Eu aqui de novo mais uma vez pra pedir humildemente uma xícara de café e um ajuda no código.
Seguinte, esse trecho do código está sendo o problema:
$this->checkField($field);
$this->getError();
if($this->getError() == false):
Não deveria inserir porque não estou informando nenhum campo apenas submeto o formulário.
// List main
if($post['action'] == 'list-main'):
$validate = new \api\controllers\includes\Validate;
// Crete table and data using a prefix
$table = $prefix . 'list_main';
$data = [
'main_name' => $post['main_name'],
'main_type' => $post['main_type'],
'main_status' => $post['main_status']
];
var_dump($validate->insertRow($table,$data,$post));
endif;
É aqui que eu queria chegar. Ele faz o cadastro sem validar os campos, como se o ponteiro pulasse o trecho do primeiro código acima:
array(1) {
["success"]=>
string(30) "Registro inserido com sucesso."
}
Validate.php
<?php
namespace api\controllers\includes;
use api\controllers\db\Delete;
class Validate
{
/ @var string $error /
private $error;
/** @var string $success */
private $success;
/**
* Check if a field pass by param is null
* @param $field
* @return mixed
*/
private function checkField($field)
{
foreach($field as $key => $val):
if(empty($val)):
$this->error[] = ['error' => "Campo {$val} obrigatório"];
endif;
endforeach;
return $this->error;
}
/**
* Obtain the message error
* @return string
*/
private function getError()
{
if(!empty($this->error)):
foreach($this->error as $error):
$this->error[] = $error;
endforeach;
return json_encode($this->error);else:
return false;
endif;
}
/**
* Insert a new registry for any modules
* Use it setting the table and all the data what you pretend insert in this table
* The table need to exists in database
* and the variable $data is the columns on this table
* @param $table
* @param $data
* @param $field
* @return mixed
*/
public function insertRow($table,array $data, array $field)
{
$this->checkField($field);
$this->getError();
if($this->getError() == false):
$create = new \api\controllers\db\Create;
$create->ExeCreate($table,$data);
if($create->getResult()):
$this->success = ['success' => "Registro inserido com sucesso."];
return $this->success;else:
$this->error = ['error' => "Falha técnica. Entre em contato com o administrador."];
return $this->error;
endif;
endif;
$this->resetValues();
}
/**
* Delete the selected rows
* @param array $rows
* @param $table
* @return array|string
*/
public function delete(array $rows, $table)
{
if(empty($rows)):
$this->error = ['error' => 'Selecione um ou mais registros para excluir'];
return $this->error;else:
$delete = new Delete;
foreach($rows as $row):
$delete->ExeDelete($table,'WHERE id = :id',"id={$row}");
endforeach;
if($delete->getResult()):
$this->success = ['success' => 'Registro(s) excluído(s) com sucesso.'];
return $this->success;
endif;
endif;
}
/**
* Reset default values and cleanup the system memory
*/
private function resetValues()
{
$this->error = null;
$this->success = null;
}
}Discussão (2)
Carregando comentários...