Bonjour,
J'ai fait un programme back-end avec :
une classe app\Controller\Account\DetailsController.php qui hérite de app\Controller\Account\AppController.php
héritant elle même de app\Controller\AppController.php qui hérite finalement de core\Controller\Controller.php
Dans app\Controller\Account\AppController.php, je teste si la personne est autorisée sinon elle est redirigée vers une page 401
Si elle est autorisée je déclare des variables
Au niveau de sa classe fille je voudrai récupérer ces valeurs ($client_role et $client_name)
J'y arrive dans le construct mais pas au niveau des autres fonctions (ex Index) et je suis obligé à chaque fois de recréer une autre variable $name pour y arriver
Comment faire pour ne pas avoir à recréer cette variable $name
Merci de votre aide
Modifié par dudu22 (03 Sep 2020 - 13:06)
J'ai fait un programme back-end avec :
une classe app\Controller\Account\DetailsController.php qui hérite de app\Controller\Account\AppController.php
héritant elle même de app\Controller\AppController.php qui hérite finalement de core\Controller\Controller.php
Dans app\Controller\Account\AppController.php, je teste si la personne est autorisée sinon elle est redirigée vers une page 401
Si elle est autorisée je déclare des variables
<?php
namespace App\Controller\Account;
use \App;
class AppController extends \App\Controller\AppController{
protected $client_id;
protected $client_role;
protected $client_name;
public function __construct(){
parent::__construct();
if(!$_SESSION['auth'])
{
$this->forbidden(); //Core/Controller
}
else
{
$client_id = $_SESSION['auth'] ;
$client_role = $_SESSION['role'];
$client_name= $_SESSION['name'];
$this->client_role = $client_role;
$this->client_name = $client_name;
}
}
}
Au niveau de sa classe fille je voudrai récupérer ces valeurs ($client_role et $client_name)
J'y arrive dans le construct mais pas au niveau des autres fonctions (ex Index) et je suis obligé à chaque fois de recréer une autre variable $name pour y arriver
use \App;
use Core\Controller\Controller;
use Core\Table\Table;
use Core\Database\MysqlDatabase;
use Core\Auth\DBAuth;
use Core\Search\Search;
class DetailsController extends AppController{
public $client_role;
public $client_name;
public function __construct(){
parent::__construct();
$this->loadModel('Detail');
$client_name=$this->client_name;
var_dump($client_name);
}
public function index(){
$pageId=29;
$page_required = $this->Detail->findPage2($pageId) ;
$level=$this->Detail->level($pageId);
$level_id=$level->level;
$name= $this->client_name;
//var_dump($name);
if ($this->client_role > $level_id)
{
$this->habilitation();
}
$account = $this->Detail->allById($_GET['id']);
$this->render('account.details.index', compact('account','page_required','role','name'));
}
Comment faire pour ne pas avoir à recréer cette variable $name
Merci de votre aide
Modifié par dudu22 (03 Sep 2020 - 13:06)