Opa galera, tudo blz? Então estou desenvolvendo um projeto MVC com PHP, que por sinal é o meu primeiro, e me deparei com um erro incomum que não consigo resolver. No meu model eu seleciono meus dados e no meu Controller eu retorno eles para uma view chamada home, o problema é que ele está retornando o erro de : Undefined index: admins in: quando tento chamar esses dados do banco de dados. Vou postar partes do meu código aqui.
Model:
class Admin {
private $db;
public function __construct()
{
$this->db = new DataBase;
}
public function lerAdmins(){
$this->db->query("SELECT * FROM admins");
return $this->db->resultados();
}
}
Controller:
class Admins extends Controller{
//construct que chama o model
public function __construct()
{
$this->adminModel = $this->model("Admin");
}
public function home(){
$dados = [
'admins' => $this->adminModel->lerAdmins()
];
$this->view('paginas/admins/home', $dados);
}
}
Class controller que chama as views e models:
<?php
class Controller {
public function model($model){
require_once '../app/Models/'.$model.'.php';
return new $model;
}
public function view($view, $dados = []){
$arquivo = ('../app/Views/'.$view.'.php');
if(file_exists($arquivo)):
require_once $arquivo;
else:
die('Método não encontrada');
endif;
}
}
Na página home eu estou chamando assim:
<?php $dados['admins'] ?>
Eu sei que como eu estou chamando um array eu preciso de um foreach o problema é que o erro mesmo com o foreach persiste se alguém pudesse me ajudar ficaria muito grato.
NÃO CARA!! Eu quero retornar os dados de todos os admins. Nessa forma o correto seria usar um foreach assim com eu citei no final da pergunta. Deste modo, ficaria:
<?php foreach($dados['admins'] as admins)?>
//ai eu chamaria os dados
<?=admins['nome']?>
<?=admins['email']?>
<?php endforeach;?>
O problema ta sendo que o array dados na posição admins NÃO ESTÁ SENDO ENVIADO PARA ESSA VIEW.