Je n'arrive pas a afficher ma vue
- Accueil
- Forum
- Programmation
- PHP
- Je n'arrive pas a afficher ma vue
Diarra01 Le 11 février 2021 à 14:21 (Édité le 1 janvier 1970 à 01:00)
Bonsoir les doyens, j'ai un soucis lors de mon exécution de la vue dans mon models MVC en suivant un tuto mais je sui bloqué ```php Mon Router <?php
//Requerir la vue accueil
require_once ("views/View.php");
//Gestion des requetes de l'user selon l'action
class Router
{
//Gestion des parametres
private $_ctrl;
private $_view;
//Fct gestion des requetes
public function routeReq()
{
try
{
//Charger les classes automatiques
spl_autoload_register(function($class){
require_once ('models/'.$class.'.php');
});
//creer une url vide
$url = '';
//Determiner le controller selon url
if (isset($_GET['url']))
{
$url = explode('/', filter_var($_GET['url'], FILTER_SANITIZE_URL));
//recuperer le 1er paramètre de l'URL
$controller = ucfirst(strtolower($url[0]));
//Recuper le bon cotroller avec son path
$controllerClass = "Controller".$controller;
$controllerFile = "controllers/".$controllerClass.".php";
if (file_exists($controllerFile))
{
require_once ($controllerFile);
$this->_ctrl = new $controllerClass($url);
}
else
{
throw new Exception("Page Introuvable", 1);
}
}
else
{
require_once ('ControllerAccueil.php');
$this->_ctrl = new ControllerAccueil($url);
}
}
catch (Exception $e)
{
$errorMsg = $e->getMessage();
$this->_view = new View('Error');
$this->_view->generate(array('errorMsg' => $errorMsg));
}
}
}
ModelQualification <?php
//Recupere les qualififcation depuis ma bdd
class Qualification { private $_id; private $_title; private $_content; private $_slug; private $_image; private $_date;
//constructeur
public function __construct(array $data)
{
$this->hydrate($data);
}
//Hydratation
public function hydrate(array $data)
{
foreach ($data as $key => $value)
{
$method = 'set'.ucfirst($key);
if (method_exists($this, $method))
{
$this->$method($value);
}
}
}
//Setters
public function setId($id)
{
$id = (int) $id;
if($id > 0)
{
$this->_id = $id;
}
}
public function setTitle($title)
{
if(is_string($title))
{
$this->_title = $title;
}
}
public function setContent($content)
{
if (is_string($content))
{
$this->_content = $content;
}
}
public function setSlug($slug)
{
if (is_string($slug))
{
$this->_slug = $slug;
}
}
public function setImage($image)
{
$this->_image = $image;
}
public function setDate($date)
{
$this->_date = $date;
}
//Getters
public function id()
{
return $this->_id;
}
public function title()
{
return $this->_title;
}
public function content()
{
return $this->_content;
}
public function slug()
{
return $this->_slug;
}
public function image()
{
return $this->_image;
}
public function date()
{
return $this->_date;
}
}
Model <?php
//Methode commune aux autres classes pour son extension
class Model
{
private static $DB;
private static function setDB()
{
//Instancie la connexion
self::$DB = new PDO("mysql:host=localhost;dbname=eventplaceafrik_db;charset=ut8mb4", "root","");
self::$DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
//Recupere la connexion a la bdd
protected function getDB()
{
if (self::$DB == null)
{
self::setDB();
return self::$DB;
}
}
//Creation de la méthode de recup de tous les contenus
protected function getAll($table, $obj)
{
$this->getDB();
$var = [];
$req = self::$DB->prepare('SELECT * FROM ' .$table. ' ORDER BY id desc');
$req->execute();
//Une boucle qui contiendra les datas
while ($data = $req->FETCH(PDO::FETCH_ASSOC))
{
$var[] = new $obj($data);
}
return $var;
$req->closeCursor();
}
}
View.php <?php
//Recuperer la vue de manière securisé
class View
{
//Fct private
private $_file;
private $_t;
public function __construct($action)
{
$this->_file = 'views/view'.$action.'.php';
}
//Genere et affiche la vue
public function generate($data)
{
//partie specifique de la vue
$content = $this->generateFile($this->_file, $data);
//Template
$view = $this->generateFile('views/template.php', array('t'=> $this->_t, 'content' => $content));
echo $view;
}
//Genere un fichier et renvoie la vue
private function generateFile($file, $data)
{
if(file_exists($file))
{
extract($data);
//Declenche la mise en tampon
ob_start();
require $file;
return ob_get_clean();
}
else
{
throw new Exception("Fichier " .$file. " introuvable");
}
}
}
viewAccueil <?php foreach ($qualifications as $qualification) : ?>
<h1><?= $qualification->title() ?></h1>
<b><?= $qualification->content() ?></b>
<p><?= $qualification->slug() ?></p>
<img src="?= $qualification->image() ?>" alt="?= $qualification->$title() ?>">
<time>?= $qualification->date() ?></time>
<?php endforeach; ?>
Diarra01 Le 11 février 2021 à 15:05 (Édité le 1 janvier 1970 à 01:00)
Merci je viens a peine de voir mes erreurs c'était ici
`self::$DB = new PDO("mysql:host=localhost;dbname=eventplaceafrik_db;charset=ut8mb4", "root",""); self::$DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
=========> charset=utf8mb4`