How about, I'm a bit green in this, I was creating an api with php following the mvc model, I had managed to connect to the base using PDO, I did my controller std, my users ctrl, user model and my index, it works well with only one (users), but the moment I create a second ctrl, the model stops working and prints only the call to the model.
This is the code
Index.php
if (!isset($_GET['ctrl'])){
$_GET['ctrl'] = 'index';
}
switch($_GET['ctrl']){
case 'index':
echo "No hagas nada";
break;
case 'usuarios':
// cargar el archivo de users controllers
require_once('controllers/UsersController.php');
// crear objeto
$controller = new UsersController();
break;
case 'tutoriales':
// cargar el archivo de users controllers
require_once('controllers/TutorialsController.php');
// crear objeto
$controller = new TutorialsController();
break;
default:
echo "El controlador seleccionado no es valido";
$controller->ejecutar();'
Controller.php
class Controller{
public function __construct(){
}
public function ejecutar(){
if (!isset($_GET['act']))
{
$_GET['act'] = 'read';
}
switch($_GET['act'])
{
case 'read':
$this->read();
break;
case 'create':
$this->create();
break;
case 'update':
$this->update();
break;
case 'delete':
$this->delete();
break;
default:
echo 'Acción no reconocida';
}
}
public function create(){
echo json_encode($this->model->Create());
}
public function read(){
//echo 'Este debe listar los productos';
echo json_encode($this->model->Show());
}
public function update(){
//echo 'Este debe listar los productos';
echo json_encode($this->model->Update());
}
public function delete(){
//echo 'Este debe listar los productos';
echo json_encode($this->model->Delete());
}
userController.php
require_once('Controller.php');
class UsersController extends Controller {
public $model;
public function __construct(){
parent::__construct();
require_once('./models/Users.php');
private static $this->model = new Users();
}
User.php (model)
include_once('c:/xampp/htdocs/ForoCucei/foro-cucei-api/Database.php');
class Users {
function __construct(){
$this->connection = DataBase::connection();
}
//function SignUp($data){
//return $this->db->insert('users', $data);
// return $this->db->insert('users', $data);
//}
function Show(){
$st = $this->pdo->prepare('SELECT * FROM users');
$st->execute();
$result = $st->fetchAll(PDO::FETCH_OBJ);
return $result;
}
function Create(){
$name = 'Tony';
$last = 'Stark';
$nick = 'Ironman';
$mail = '[email protected]';
$pass = '+Carlos1';
$passHash = password_hash($pass, PASSWORD_BCRYPT);
$st = $this->pdo->prepare('INSERT INTO users(name, last, nick, mail, pass) VALUES (:name, :last, :nick, :mail, :pass)');
$st->bindValue(":name", $name);
$st->bindValue(":last", $last);
$st->bindValue(":nick", $nick);
$st->bindValue(":mail", $mail);
$st->bindValue(":pass", $passHash);
$st->execute();
$result = $st->fetchAll(PDO::FETCH_OBJ);
return $result;
}
function Update(){
$id = 2;
$name = 'Kimi';
$last = 'Raikkonen';
$nick = 'iceman';
$mail = '[email protected]';
$st = $this->pdo->prepare('UPDATE users
SET 'name' = :name,
'last' = :last,
'nick' = :nick,
'mail' = :mail
WHERE 'iduser' = :id
');
$st->bindValue(":id", $id);
$st->bindValue(":name", $name);
$st->bindValue(":last", $last);
$st->bindValue(":nick", $nick);
$st->bindValue(":mail", $mail);
$st->execute();
$result = $st->fetchAll(PDO::FETCH_OBJ);
return $result;
}
function Delete(){
$id = 3;
$st = $this->pdo->prepare('DELETE FROM users WHERE 'iduser' = :id');
$st->bindValue(":id", $id);
$st->execute();
$result = $st->fetchAll(PDO::FETCH_OBJ);
return $result;
}
}