Fatal error: Uncaught Error: Call to a member function ajoutTicket() on null
Résolu
nilson42
Messages postés
39
Statut
Membre
-
nilson42 Messages postés 39 Statut Membre -
nilson42 Messages postés 39 Statut Membre -
Bonjour,
j'ai essayer de rajouter l'insertion d'un ticket(article) mais cela ne marche pas. alors voilà.
j'ai essayer de rajouter l'insertion d'un ticket(article) mais cela ne marche pas. alors voilà.
<?php
/**
* CLASS APPEL CONTRÔLEUR, C'EST CETTE ACTION QUI VA GÉRER LE RENDU DE NOTRE PAGE D'ACCUEIL.
*/
namespace App\config;
use App\src\controller\BackController;
use App\src\controller\FrontController;
use App\src\controller\ErrorController;
use Exception;
class Router
{
private $_frontController;
private $_backController;
private $_errorController;
/**
* instanciation des Controllers et fait un appelle automatique des fonctions
*/
public function __construct()
{
$this->_frontController = new FrontController();
$this->_backcontroller = new BackController();
$this->_errorController = new ErrorController();
}
/**
* // Route une requête entrante : exécution l'action associée
*/
public function run()
{
try{
if(isset($_GET['route']))
{
if($_GET['route'] === 'ticket'){
$this->_frontController->ticket($_GET['ticketId']);
} // route est passée à une méthode appelée ajoutTicket du backController qui prend en paramètre la variable superglobale $_POST
elseif($_GET['route'] === 'ajoutTicket'){
$this->_backController->ajoutTicket($_POST);
}
else{
// aucune action définie : affichage de page 404 + redirect à la page principale
$this->_errorController->errorNotFound();
}
}
else{
$this->_frontController->home();
}
}
catch (Exception $e)
{
// aucune action définie : affichage de page 500 + redirect à la page principale
$this->_errorController->errorServer();
}
}
}
class BackController{
private $_view;
public function __construct()
{
$this->_view = new View();
}
/**
* Méthode qui récupere l'insertion de ticket pour l'user connecté
* si formulaire soumis alors on rentre dans la condition et on fait appel à la méthode ajoutTicket de la classe ticketManager,
* si contaire on ne rentre pas dans la conditions.
* @return string,array
*/
public function ajoutTicket($post){
if(isset($post['submit'])){
$ticketManager = new TicketManager();
$ticketManager->ajoutTicket($post);
header('Location: ../public/index.php');
}
//Génère et affiche la vue (nom de page, array)
return $this->_view->rendu('add_ticket',['post' => $post]);
}
}
<?php
/**
* CLASS GESTIONS GLOBALE DES TICKETS
*/
namespace App\src\Manager;
use App\src\model\Ticket;
class TicketManager extends Manager
{
//etc....
/**
* Méthode qui gere l'insertion de ticket
* @return array $ticket
*/
public function ajoutTicket($ticket){
//Permet de récupérer les variables $title, $content et $author
extract($ticket);
$sql = 'INSERT INTO ticket (title, content, author, createdAt) VALUES (?, ?, ?, NOW())';
$this->createQuery($sql, [$title, $content, $author]);
}
//etc....
}
Configuration:
Quant j'appui sur le lien :
<a href="../public/index.php?route=ajoutTicket">Nouvel Ticket</a>
Fatal error: Uncaught Error: Call to a member function ajoutTicket() on null
Windows / Chrome 80.0.3987.122
Quant j'appui sur le lien :
<a href="../public/index.php?route=ajoutTicket">Nouvel Ticket</a>
Fatal error: Uncaught Error: Call to a member function ajoutTicket() on null
Windows / Chrome 80.0.3987.122
A voir également:
- Call to a member function on null php
- Fan error lenovo - Forum Refroidissement
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Error 1962 ✓ - Forum PC fixe
- Playback error reconnect in 3s (1/5) francais - Forum Box et Streaming vidéo
- Bad request error 403 paiement ✓ - Forum Réseaux sociaux