fork download
  1. <?php /* Допустим, есть у меня layout main.php вида */ ?>
  2. ...
  3. <body>
  4. <?php echo $content;?>
  5. </body>
  6. ...
  7.  
  8. <?php /* Здесь все понятно, переменные в шаблон подставятся при рендере
  9. конкретного вида в экшене:*/
  10. public function actionIndex()
  11. {
  12. //...
  13. $var = 'value';
  14. $this->render('index', array('$var'=>$var));
  15. }
  16. ?>
  17.  
  18. <?php /* Но как быть, если необходимо передать несколько переменных
  19. в главный макет, а не в местное представление? */?>
  20. ...
  21. <body>
  22. <p><?php echo $var;?></p>
  23. <?php echo $content;?>
  24. </body>
  25. ...
  26.  
  27. <?php /* Приходит на ум очевидное решение создавать в контроллере
  28. поля для передачи этих значений, и обращаться к ним
  29. через $this в представлении: */
  30. public $var = 'value';
  31. public function actionIndex()
  32. {
  33. ...
  34. $this->var = 'value';
  35. $this->render('index');
  36. }
  37. /* Будет ли это правильно, или есть более подходящие решения? */
  38. ?>
Runtime error #stdin #stdout #stderr 0.02s 24448KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
PHP Parse error:  syntax error, unexpected 'public' (T_PUBLIC) in /home/bvAOEY/prog.php on line 10