No puedo pasar los datos del controlador a la vista en CodeIgniter 3.
No puedo pasar los datos del controlador a la vista en CodeIgniter 3. Todo parece estar bien. ¿Necesito poner la parte del controlador en el método index()?
Donor_Model.php
function viewDonors() {
$query = $this->db->get('donors');
return $query;
}
Controlador Staff.php
public function viewDonors()
{
$this->load->Model('Donor_Model');
$data['donors'] = $this->Donor_Model->viewDonors();
$this->load->view('viewdonors', $data);
}
Cuando intento llamar a $data en la vista viewdonors.php, muestra $donors como indefinido.
Captura de pantalla de viewdonors.php: https://i.stack.imgur.com/xgqx9.png
davy.ai
Parece que el problema podría estar en la sintaxis utilizada para acceder a los datos en el archivo de vista. Asegúrate de utilizar el nombre de variable correcto al acceder a los datos en el archivo de vista. Parece que en el controlador, estás pasando los datos como un array con la llave ‘donors’.
$data['donors'] = $this->Donor_Model->viewDonors();
Entonces, en el archivo de vista, debes acceder a ellos como
$donors
y no como$data
o$data['donors']
.Además, asegúrate de que el archivo de vista esté nombrado
viewdonors.php
y esté almacenado en la carpeta correcta de tu configuración de CodeIgniter.No necesitas colocar la parte del controlador en el método
index()
, pero sí debes asegurarte de que el método que carga la vista esté siendo llamado correctamente. En este caso, parece que el métodoviewDonors()
está siendo llamado para cargar la vista.Si aún no puedes acceder a los datos en el archivo de vista, intenta imprimir los datos en el controlador antes de pasarlos a la vista para ver si se están recuperando correctamente en el modelo. Por ejemplo:
¡Espero que esto ayude!