llamar a un metodo desde 2 controladores
Publicado por Manuel (12 intervenciones) el 27/05/2021 12:45:36
Buenas tardes estoy montado un proyecto con MVC , POO Y PDO....necesito utilizar una función que se all_customers() desde dos controladores....Clients y Projects.
En un principio he pensado que ya que voy hacer uso de una misma función lo recomendable sería implementar un trait y ya en cada controlador pues hago la llamada a esa función pero...no se muy bien como plantearlo.
He creado una carpeta con el archivo reportingSevice.php
<?php
trait Clientbd{
public function __construct(){
try {
$this->db = Conexion::connect();
} catch (PDOException $e) {
die($e->getMessage());
}
}
public function all_customers(){
$pst = $this->db->query("SELECT id_cliente,logo,nombre_cliente,email,telefono FROM clientes");
return $data = $pst->fetchAll(PDO::FETCH_OBJ);
}
}
Este seria el controlador:
<?php
require_once '../app/trait/ReportingService.php';
class Clients extends Controller{
use Clientbd;
public function __construct(){
$this->ClientModel = $this->model('ClientModel');
}
//Método para ver todos los clientes
public function see(){
$clients= $this->ClientModel->all_customers();
// print_r($clients);
// die();
$data = [
'clients'=> $clients
];
$this->view('/pages/client/see',$data);
}
¿Cómo deberia hacer la llamada a la funcion all_customers()? a ver si alguien puede aclararmelo . Muchas gracias
En un principio he pensado que ya que voy hacer uso de una misma función lo recomendable sería implementar un trait y ya en cada controlador pues hago la llamada a esa función pero...no se muy bien como plantearlo.
He creado una carpeta con el archivo reportingSevice.php
<?php
trait Clientbd{
public function __construct(){
try {
$this->db = Conexion::connect();
} catch (PDOException $e) {
die($e->getMessage());
}
}
public function all_customers(){
$pst = $this->db->query("SELECT id_cliente,logo,nombre_cliente,email,telefono FROM clientes");
return $data = $pst->fetchAll(PDO::FETCH_OBJ);
}
}
Este seria el controlador:
<?php
require_once '../app/trait/ReportingService.php';
class Clients extends Controller{
use Clientbd;
public function __construct(){
$this->ClientModel = $this->model('ClientModel');
}
//Método para ver todos los clientes
public function see(){
$clients= $this->ClientModel->all_customers();
// print_r($clients);
// die();
$data = [
'clients'=> $clients
];
$this->view('/pages/client/see',$data);
}
¿Cómo deberia hacer la llamada a la funcion all_customers()? a ver si alguien puede aclararmelo . Muchas gracias
Valora esta pregunta


0