Y at-il un moyen de rendre un contrôleur à une vue différente de celle normale J'essaie de transmettre certaines données du contrôleur à une vue autre que celle par défaut. Ce qui signifie que mon contrôleur s'appelle:
class StocksRealtimeController extends AppController {
var $uses = 'StockRealtime';
function index(){
$action = '/TestView';
$this->set('stocksRT', $this->StockRealtime->find('all'));
//$this -> viewPath = 'Pages';
$this -> render('/TestView/index');
}
}
... et ma vue est dans views-> TestView-> index.ctp
Une autre question que je me pose est la suivante: comment passer cette valeur à un PHP et non à un fichier ctp en dehors du framework CakePHP?
J'ai tout essayé de ici sans succès.
Je préférerais utiliser:
$this->view = 'file';
parce que tout $this->set('var', $val)
que vous aurez après $this->render('file')
ne vous atteindra pas.
Dans CakePHP 3.x, utilisez:
$this->viewBuilder()->template('file');
Essayez de mettre le nom de la vue sans l'extension .ctp.
$this->render('file');
class StocksRealtimeController extends AppController
{
var $uses = 'StockRealtime';
function index( )
{
$this->layout = NULL;
$this->autoRender = false;
$this->set('stocksRT', $this->StockRealtime->find('all'));
return $this -> render('/TestView/index');
/*
$this -> render('/TestView/index');
Here 'TestView' must be a Folder named same as "public $name" variable value
in Controller and an "index.ctp" must be situated under TestView Folder.
'index'
*/
}
}
Essayez, retournez 'KEYWORD' doit être présent pour rendre la page de visualisation avec succès . Désolé pour la 2ème question car je ne l'ai pas eu . Selon CakePHP, la variable [stocksTR] qui est définie avec. . $ this -> set (), sera également disponible à la page de rendu de rendu manuel ['index.ctp'].
public function admin_index() {
$this->layout = 'admin/table';
$action = '/Vendors';
$this->Prg->commonProcess('Vendor');
$this->paginate = array('conditions' => array($this->Vendor->parseCriteria($this->passedArgs)), 'order' => 'Vendor.created_on DESC', 'limit' => 15);
$this->set('vendor', $this->paginate('Vendor'));
$this->render('/vendors/admin_items');
}
class StocksRealtimeController extends AppController {
var $uses = 'StockRealtime';
function index(){
$this->layout = NULL;
$this->autoRender = false;
$this->set('stocksRT', $this->StockRealtime->find('all'));
$this -> render(`/TestView/index`);
}
}
$this->view = '/TestView/index';
$this->set('stocksRT', $this->StockRealtime->find('all'));