Na classe ClienteController crie um método chamado index, o qual deverá:
- Listar todos os clientes e enviar estes dados para a view
- Chamar a view Cliente/Index
public function index(){
$dados["lista"] = Service::lista($this->tabela);
$dados["view"] = "Cliente/Index";
$this->load("template", $dados);
}
abra o arquivo lista.html, o qual foi enviado, copie o conteúdo que está na section caixa e cole dentro do arquivo Index.php criado anteriormente e em seguida rode o seu sistema chamando a listagem de cliente, o mesmo deverá funcionar sem erros.
<section class="caixa">
<div class="base-home">
<span class="titulo items-center justify-content-space-between">
<span> Lista de contatos</span>
<div class="text-end d-flex" style="gap:10px">
<a href="cadastro.html" class="btn btn-verde d-inline-block radius-50 btn-pequeno"><i class="fas fa fa-plus-circle" aria-hidden="true"></i> Cadastrar cliente</a>
<a href="" class="btn btn-azul d-inline-block filtro radius-50 btn-pequeno"><i class="fas fa fa-filter" aria-hidden="true"></i> Filtrar</a>
</div>
</span>
<div class="base-lista">
<div class="lst mostraFiltro">
<form action="" method="">
<div class="rows">
<div class="col-4">
<select name="txt_id_empresa" class="form-campo">
<option selected>Selecione o valor...</option>
<option value="1">Código</option>
<option value="2">Nome</option>
<option value="3">Email</option>
<option value="4">Cidade</option>
<option value="5">Site</option>
<option value="6">Fone</option>
</select>
</div>
<div class="col-6">
<input type="text" name="" placeholder="Valor da pesquisar..." class="form-campo">
</div>
<div class="col-2">
<input type="submit" class="btn btn-azul" value="pesquisar">
</div>
</div>
</form>
</div>
<div class="table-responsive">
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="dataTable">
<thead>
<tr>
<th align="left">Nome</th>
<th align="left">Email</th>
<th align="center">Telefone</th>
<th align="center">Ação</th>
</tr>
</thead>
<tbody>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="formulario.html" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="formulario.html" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="formulario.html" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="formulario.html" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="formulario.html" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="formulario.html" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="formulario.html" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<tr>
<td>Manoel Jailton Nascimento</td>
<td>mjailton@gmail.com</td>
<td align="center">9899924667</td>
<td align="center">
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="1" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</section>
Na view Index, faça os seguintes procedimentos:
- Faça o loop para receber os dados do banco e listar na tabela
- Configure o link para fazer a edição de um registro
- Configure o link para fazer a exclusão de um registro
<?php foreach($lista as $cliente){ ?>
<tr>
<td><?php echo $cliente->id_cliente ?></td>
<td><?php echo $cliente->cliente ?></td>
<td><?php echo $cliente->email ?></td>
<td align="center"><?php echo $cliente->fone ?></td>
<td align="center">
<a href="<?php echo URL_BASE ."cliente/edit/". $cliente->id_cliente ?>" class=""><svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8287 2.90909L14.2683 1.46868C14.5684 1.16859 14.9754 1 15.3998 1C15.8242 1 16.2312 1.16859 16.5313 1.46868C16.8314 1.76878 17 2.17579 17 2.60019C17 3.02459 16.8314 3.4316 16.5313 3.73169L7.46989 12.7931C7.01876 13.244 6.46243 13.5754 5.85114 13.7574L3.55997 14.44L4.24262 12.1489C4.42462 11.5376 4.75601 10.9812 5.20688 10.5301L12.8287 2.90909ZM12.8287 2.90909L15.0798 5.16016M13.7998 11.0267V15.08C13.7998 15.5892 13.5975 16.0776 13.2375 16.4377C12.8774 16.7977 12.3891 17 11.8799 17H2.91997C2.41077 17 1.92241 16.7977 1.56235 16.4377C1.20228 16.0776 1 15.5892 1 15.08V6.12014C1 5.61093 1.20228 5.12258 1.56235 4.76252C1.92241 4.40245 2.41077 4.20017 2.91997 4.20017H6.97325" stroke="#3ADD62" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="javascript:;" onclick="excluir(this)" data-entidade="cliente" data-id="<?php echo $cliente->id_cliente ?>" class="ml-2"><svg width="16" height="18" viewBox="0 0 16 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.0172 6.53874L9.73331 13.9232M5.80479 13.9232L5.52091 6.53874M13.6996 3.90497C13.9802 3.94763 14.2591 3.99276 14.5381 4.04117M13.6996 3.90497L12.8233 15.2958C12.7875 15.7596 12.578 16.1928 12.2366 16.5087C11.8953 16.8247 11.4472 17.0001 10.9821 17H4.55601C4.09087 17.0001 3.64282 16.8247 3.30146 16.5087C2.9601 16.1928 2.75059 15.7596 2.71483 15.2958L1.83854 3.90497M13.6996 3.90497C12.7526 3.7618 11.8007 3.65315 10.8459 3.57923M1.83854 3.90497C1.55793 3.94681 1.27897 3.99194 1 4.04035M1.83854 3.90497C2.7855 3.76181 3.73735 3.65316 4.69221 3.57923M10.8459 3.57923V2.82766C10.8459 1.85948 10.0992 1.05212 9.13106 1.02176C8.22329 0.992747 7.31481 0.992747 6.40704 1.02176C5.43886 1.05212 4.69221 1.8603 4.69221 2.82766V3.57923M10.8459 3.57923C8.79772 3.42094 6.74038 3.42094 4.69221 3.57923" stroke="#E5616B" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</td>
</tr>
<?php } ?>
Teste o sistema chamando a listagem, não é pra listar nenhum registro, mas também não é para apresentar nenhum erro.
abra o arquivo cadastro.html, o qual foi enviado, copie o conteúdo que está na section caixa e cole dentro do arquivo Create.php criado anteriormente e em seguida rode o seu sistema chamando o cadastro de cliente, o mesmo deverá funcionar sem erros.
configure os input atribuindo a eles na propriedade name o nome igual ao que foi definido na criação da tabela,
também observe os tipos de dados específicos e os que são obrigatórios atribua a propriedade required
<div class="rows">
<div class="col-3 position-relative">
<img src="img/img-usuario.png" class="img-fluido foto">
<div class="foto-file">
<input type="file" id="editarFoto"><label for="editarFoto"><span>Editar foto</span></label>
</div>
</div>
<div class="col-9 mb-3">
<div class="rows">
<div class="col-12 mb-3">
<label>Nome</label>
<input name="cliente" required value="" type="text" placeholder="Nome" class="form-campo">
</div>
<div class="col-12 mb-3">
<label>Email</label>
<input name="email" required value="" type="email" placeholder="Email" class="form-campo">
</div>
<div class="col-12 mb-3">
<label>Site</label>
<input name="site" value="" type="text" placeholder="Site" class="form-campo">
</div>
</div>
</div>
<div class="col-2 mb-3">
<label>CEP</label>
<input name="cep" required value="" type="text" placeholder="CEP" class="form-campo">
</div>
<div class="col-8 mb-3">
<label>Endereço</label>
<input name="endereco" required value="" type="text" placeholder="Endereço" class="form-campo">
</div>
<div class="col-2 mb-3">
<label>Número</label>
<input name="numero" required value="" type="text" placeholder="Número" class="form-campo">
</div>
<div class="col-6 mb-3">
<label>Complemento</label>
<input name="complemento" value="" type="text" placeholder="Complemento" class="form-campo">
</div>
<div class="col-6 mb-3">
<label>Bairro</label>
<input name="bairro" required value="" type="text" placeholder="Bairro" class="form-campo">
</div>
<div class="col-6 mb-3">
<label>Cidade</label>
<input name="cidade" required value="" type="text" placeholder="Cidade" class="form-campo">
</div>
<div class="col-2 mb-3">
<label>Estado</label>
<input name="uf" value="" required type="text" placeholder="uf" class="form-campo">
</div>
<div class="col-4 mb-3">
<label>Celular</label>
<input name="celular" value="" type="text" placeholder="Celular" class="form-campo">
</div>
<div class="col-4 mb-3">
<label>CPF</label>
<input name="cpf" value="" required type="text" placeholder="CPF" class="form-campo">
</div>
<div class="col-4 mb-3">
<label>Sexo</label>
<select class="form-campo" name="sexo">
<option>Masculino</option>
<option>Feminino</option>
</select>
</div>
<div class="col-4 mb-3">
<label>Data inscrição</label>
<input name="data_cadastro" value="" type="date" placeholder="Data de inscrição" class="form-campo">
</div>
<div class="col-12 mb-4">
<label>Observação</label>
<textarea rows="5" name="observacao" class="form-campo"></textarea>
</div>
<input type="submit" value="Cadastrar" class="btn btn-verde m-auto">
</div>
No controller ClienteController crie um método chamado salvar, o qual deverá:
- Criar um objeto do tipo stdclass chamado cliente
- atribua ao objeto cliente os dados vindos do formulário
- chame o método salvar do service ClienteService, passando o objeto cliente como parâmetro
- faça a verificação se der ok redirecione para a listagem senão retorne para o create/edit
public function salvar(){
$cliente = new \stdClass();
$cliente->id_cliente = $_POST["id_cliente"] ? $_POST["id_cliente"] : null;
$cliente->cliente = $_POST['cliente'];
$cliente->endereco = $_POST['endereco'];
$cliente->complemento = $_POST['complemento'];
$cliente->numero = $_POST['numero'];
$cliente->bairro = $_POST['bairro'];
$cliente->cidade = $_POST['cidade'];
$cliente->uf = $_POST['uf'];
$cliente->cep = $_POST['cep'];
$cliente->celular = $_POST['celular'];
$cliente->cpf = $_POST['cpf'];
$cliente->sexo = $_POST['sexo'];
$cliente->email = $_POST['email'];
$cliente->data_cadastro = date("Y-m-d");
if(ClienteService::salvar($cliente, "id_cliente", "cliente")){
$this->redirect(URL_BASE."cliente");
}else{
if(!$cliente->id_cliente){
$this->redirect(URL_BASE."cliente/create");
}else{
$this->redirect(URL_BASE."cliente/edit/".$cliente->id_cliente);
}
}
}
Crie uma classe chamada ClienteService dentro de models/service
<?php
namespace app\models\service;
class ClienteService{
}
implemente um método estático chamado salvar dentro da classe ClienteService, o qual deverá:
- receber como parâmetro o objeto cliente, o nome campo de chave primária e o nome da tabela
- chamar o método salvar da validacao ClienteValidacao
- salvar os dados no banco de dados através do método salvar da classe Service
public static function salvar($cliente, $campo, $tabela){
$validacao = ClienteValidacao::salvar($cliente);
return Service::salvar($cliente, $campo, $validacao->listaErros(), $tabela);
}
Crie uma classe chamada ClienteValidacao dentro de models/validacao
<?php
namespace app\models\validacao;
class ClienteValidacao {
}
implemente um método estático chamado salvar dentro da classe ClienteValidacao, o qual deverá:
- receber como parâmetro o objeto cliente
- criar um objeto do tipo Validacao
- setar (setData) os campos necessários para a validação
- chamar (getData) a validação de acordo com o necessário
- retornar a validacao
public static function salvar($cliente){
$validacao = new Validacao();
$validacao->setData("cliente", $cliente->cliente);
$validacao->setData("cpf", $cliente->cpf);
$validacao->setData("cep", $cliente->cep);
$validacao->setData("bairro", $cliente->bairro);
$validacao->setData("cidade", $cliente->cidade);
$validacao->setData("uf", $cliente->uf);
$validacao->setData("email", $cliente->email);
//fazendo a validação
$validacao->getData("cliente")->isVazio()->isMinimo(5);
$validacao->getData("cep")->isVazio();
$validacao->getData("cpf")->isVazio()->isCPF();
$validacao->getData("bairro")->isVazio();
$validacao->getData("cidade")->isVazio();
$validacao->getData("uf")->isVazio();
$validacao->getData("email")->isVazio()->isEmail();
if($cliente->email ){
$tem = Service::get("cliente", "email", $cliente->email);
if($tem && $cliente->id_cliente != $tem->id_cliente){
$validacao->getData("email")->isUnico(1);
}
}
return $validacao;
}
Tente cadastrar um cliente , é importante que o sistema faça a validação e retorne as mensagens de erro caso algum campo obrigatório não for preenchido ou uma validação não for obedecida, só pode cadastrar se tiver tudo ok
Ao enviar a requisição, o sistema faz a validação e caso não consiga salvar retorna para a página de cadastro e com isso está perdendo os dados que já tinha sido cadastrados, para resolver isso faça os seguintes procedimentos:
Uma boa prática é fazer com que o sistema busque um endereço a partir de um CEP, para isso faça o seguinte:
- No imput de cep adiciona a classe busca_cep
- No input de endereco adicione a classe rua
- No input de bairro adicione a classe bairro
- No input de cidade adicione a classe cidade
- No input de uf adicione a classe estado
Agora vamos fazer o upload das fotos, para isso faça os seguinte passos:
- configure o formulário
- configure as configurações iniciais
- configure o service
Abra o arquivo config/config.php e verifique as configurações iniciais da variável $config_upload e configure os valores:
- verifica_extensao - se o sistema irá validar as extensões
- extensoes - quais as extensões válidas
- verifica_tamanho - se o sistema deverá verificar o tamanho do arquivo
- tamanho - qual o tamanho máximo do arquivo em byte
- caminho_absoluto - caminho onde será armazenado o arquivo
- renomeia - se o sistema deverá criar um nome aleatório ou manter o nome do arquivo
faça as configurações de acordo com sua necessidade
- para o nosso projeto, vamos criar uma pasta chamada IMAGENS para salvar as imagens dos clientes, então modifique o caminho absoluto apontando para a pasta criada
$config_upload["caminho_absoluto"] = realpath('./'). '/IMAGENS';
abra o ClienteService no método salvar e faça os seguintes procedimentos:
- chame a variável global $config_upload
- verifique se a validação possua algum erro, caso não possua e caso tenha sido enviado algum arquivo chame o método upload do service UtilService.
- guarde o retorno do método upload dentro de $clente->foto.
- verique se algum valor foi passado se não foi então return false para a função
public static function salvar($cliente, $campo, $tabela){
global $config_upload;
$validacao = ClienteValidacao::salvar($cliente);
if($validacao->qtdeErro()<=0){
if($_FILES["arquivo"]["name"]){
$cliente->foto = UtilService::upload("arquivo", $config_upload);
if(!$cliente->foto){
return false;
}
}
}
return Service::salvar($cliente, $campo, $validacao->listaErros(), $tabela);
}
Na classe ClienteController crie um método chamado edit, o qual deverá:
- receber o id_cliente como parametro
- Buscar o cliente pelo id e enviar os dados para a view
- Chamar a view Cliente/Create
public function edit($id_cliente){
$dados["cliente"] = Service::get("cliente","id_cliente", $id_cliente);
$dados["view"] = "Cliente/Create";
$this->load("template", $dados);
}
Na classe ClienteController crie um método chamado excluir, o qual deverá:
- receber o id_cliente como parametro
- chamar o método excluir da classe Service
- redirecionar para a listagem de clientes
public function excluir($id){
Service::excluir("cliente","id_cliente",$id);
$this->redirect(URL_BASE."cliente");
}
Na classe ClienteController crie um método chamado filtro, o qual deverá:
- criar um objeto chamado filtro do tipo stdClass
- receber os dados do formulário no objeto filtro
- chamar o método filtro da classe ClienteService, passando como parâmetro o objeto filtro
- chamar a view Cliente/Index
public function filtro(){
$filtro = new stdClass;
$filtro->campo = $_GET["campo"];
$filtro->valor = $_GET["valoar"];
$dados["lista"] = ClienteService::filtro($filtro);
$dados["view"] = "Cliente/Index";
$this->load("template", $dados);
}
Na classe ClienteService crie um método chamado filtro, o qual deverá:
- receber como parâmetro o objeto filtro
- criar um objeto chamado dao da classe ClienteDao
- retornar o resultado do método filtro do objeto dao
obs: não esqueça de declarar no use a classe use app\models\dao\ClienteDao;, a qual será criada em seguida.
public static function filtro($filtro){
$dao = new ClienteDao();
return $dao->filtro($filtro);
}
abra a view Cliente/Index e configure o formulário com os dados:
- dentro da div mostraFiltro mude a propriedade action para que chame o metodo filtro e o método como get
- configure a propriedade value dos options com o respectivo campo que deseja fazer o filtro
<form action="<?php echo URL_BASE ."cliente/filtro" ?>" method="">
<div class="rows">
<div class="col-4">
<select name="campo" class="form-campo">
<option value="id_cliente">Código</option>
<option value="cliente">Nome</option>
<option value="email">Email</option>
<option value="cidade">Cidade</option>
<option value="site">Site</option>
<option value="celular">Celular</option>
</select>
</div>
<div class="col-6">
<input type="text" name="valor" required placeholder="Valor da pesquisar..." class="form-campo">
</div>
<div class="col-2">
<input type="submit" class="btn btn-azul" value="pesquisar">
</div>
</div>
</form>