¿alguien puede decirme cómo puedo acceder al modelo desde la vista en codeigniter?modelo de acceso de la vista en codeigniter?
Respuesta
Ver el hilo:
Por cierto ¿por qué necesita para acceder a la model
del view
, puede enviar los datos del modelo a la vista desde la controller
también que es lo habitual y mejor enfoque.
Como una buena nota, mantenga su lógica de procesamiento fuera de la vista, en su lugar debe usar controller
.
CodeIgniter's $this->load->model()
no devuelve absolutamente nada. Míralo: system/libraries/Loader.php
.
Esta es la salida absolutamente nada:
$model = $this->load->model('table');
print_r($model);
Y el siguiente ejemplo le dará el error fatal Call to a member function some_func() on a non-object
:
$model = $this->load->model('table');
$model->some_func();
No importa si aún existe esa función, no es $model
un objeto.
Lo que hay que hacer es tener un método en su modelo que devuelve datos, a continuación, llamar a esa función y pasar los resultados a su archivo de vista:
$this->load->model('table');
$data = $this->table->some_func();
$this->load->view('view', $data);
PS: ¿Cómo es la única respuesta que ha aceptado lo absolutamente incorrecto que hacer?
@ bschaeffer - Estoy cargando un modelo que después de llamar a la función. pero me da un error "Llamar a una función de miembro addPost() en un no-objeto" –
hay una manera de hacerlo que encontré por accidente, pero es un todo de seguridad para hacerlo, los modelos se suponen manejan accediendo al base de datos y organizando los datos, el controlador debe manejar cualquier tipo de lógica de manipulación de datos, y es un intermedio entre la vista y los modelos, esto ayuda a evitar el acceso directo a sus datos desde páginas públicas y centraliza y manipula los datos. disminuyendo el tiempo que lleva depurar – John
Dado que $ model no es un objeto, puede realizar una llamada al modelo "tabla" utilizando el operador de resolución de alcance "::", que puede llamar a la función de la clase sin ninguna instancia de objeto.
$this->load->model('table');
table::some_funct();
Nota: también es necesario para hacer que la función "some_funct" estática dentro de su modelo de "mesa".
Hey. Puede acceder desde la vista a los modelos del mismo modo al que accede en su controlador. Recuerde que el acceso de vista a los modelos que importan su controlador.
Cargar un modelo en el controlador
$this->load->model('yourmodel');
Asignar este modelo a un var como esto
$data['model_obj'] = $this->yourmodel;
y asignar esta matriz de datos a su plantilla de vista
Uso $ model_obj objeto en la plantilla de vista para llamar a los métodos del modelo
$model_obj->some_method()
Espero que esto ayude ...
Exactamente lo que estaba buscando. Funciona perfecto! – Gereltod
en el UML original que he visto para la arquitectura MVC, ver los métodos de llamadas en el modelo ..
http://www.as3dp.com/wp-content/uploads/2010/02/mvc_pope_krasner.png
..pero en la práctica con las aplicaciones PHP, porque no hay persistencia para realizar un seguimiento de los cambios de estado de objetos entre peticiones (o al menos no de manera eficiente), creo que es mejor mantener todo método de modelo requiere en Controlador y pase el resultado para ver si es posible.
Puede acceder de manera básica a un método desde view en codeingiter.
public function index()
{
$this->load->model('persons');
$data['mydata'] = $this->persons->getAllSessionData();
$this->load->view('test_page', $data);
}
en vista
print_r ($mydata);
mi función devuelve una matriz.
No accede al modelo desde la vista. Usted accede desde el controlador y proporciona la salida a la vista. No es lo que pide el autor de la pregunta. – DescampsAu
Puede utilizar siguiente código:
$ci =&get_instance();
$ci->load->model(your model);
$ci->(your model)->(your function);
Note: You have to call your model in your controller.Its working fine
Gracias hermano .. @ Pritam Chaudhari –
- 1. codeigniter modelo de acceso de la biblioteca
- 2. MVVM Modelo de acceso desde la vista
- 3. acceso MVVM vista padre modelo desde dentro de la colección
- 4. instancia codeigniter de la clase de modelo
- 5. cómo heredar un modelo de otro modelo en CodeIgniter
- 6. Desvincular el modelo de vista de la vista en knockout
- 7. cómo cargar la vista en otra vista codeigniter 2.1?
- 8. Actualizando un modelo de vista desde otro modelo de vista
- 9. Acceso al valor de la variable pública en codeigniter controller
- 10. Cargando y usando un modelo codeigniter de otro modelo
- 11. Validación: modelo o modelo de vista
- 12. Modelo Fat Skinny controlador en CodeIgniter
- 13. Acceso a la sesión en el modelo
- 14. MVC: Controlador de vista de modelo: ¿la vista llama al modelo?
- 15. Variable de matriz de acceso en sesión (CodeIgniter)
- 16. acceso CanCan `puede` método de un modelo
- 17. parámetros de la petición de acceso desde una vista JSP en la primavera Web MVC sin ponerlos en un modelo
- 18. atributo de Acceso Modelo en scriplet
- 19. MVC modelo de vista genérico
- 20. CodeIgniter: pasar datos a una vista incluida en una vista
- 21. Codeigniter - devuelve mi objeto modelo en lugar de stdClass Objeto
- 22. validación modelo de vista para una lista
- 23. MVVM duplicar, Características del modelo en modelo de vista
- 24. Retransmisión de propiedades vista del modelo en una vista
- 25. Modelo-Vista-Controlador en JavaScript
- 26. MVP (Presentador de vista de modelo) o MVC (Controlador de vista de modelo)
- 27. CodeIgniter error del modelo: Undefined property
- 28. ¿Cómo funciona la carga de codeigniter?
- 29. Codeigniter PHP - cargando una vista en un punto de ancla
- 30. llamando a un método en el modelo de la vista
nadas aquí observa que no es procesado en la vista. En MVC, la vista tiene acceso al modelo. Ver: http://www.phpwact.org/pattern/model_view_controller –
¿está bien entonces cómo puedo acceder a 3 tablas usando el método del modelo de controlador? Tuve que seleccionar datos de 3 tablas y todos ellos dependen del valor generado a partir de la primera consulta, ¿hay alguna otra manera fácil, tuve éxito al crear una combinación en 2 tablas pero ninguna idea en 3 tablas se une, alguna sugerencia? – sonill
Enlace roto. Codeigniter cambió sus foros. – Goose