установка свойства публичного класса в рамках Yii - PullRequest
0 голосов
/ 27 мая 2011

В контроллере (который называется классом MessageController) есть этот код, который отображает файл «view» с именем helloWorld, а также устанавливает массив, в котором переменная $ theTime связана с ключом «time».

$theTime = date("D M j G:i:s T Y"); 
$this->render('helloWorld',array('time'=>$theTime));

В файле просмотра helloWorld ключ 'time' от контроллера отображается здесь через переменную $ time

<h3><?php echo $time; ?></h3>

это работает отлично. Тем не менее, книга также предлагает попробовать другой путь. Это говорит

Измените предыдущий пример, определив собственность публичного класса на MessageController, а не переменная локальной области действия, значение которой текущая дата и время. затем отображать время в файле просмотра доступ к этому свойству класса через $ Это.

Я не смог понять, как это сделать. Кто-нибудь знает, как

Ответы [ 4 ]

3 голосов
/ 27 мая 2011
class MessageController {
  public $time;

  public function beforeAction($action) {
    $this->time = date("D M j G:i:s T Y");
    return true;
  }

  public function someAction() {
    $this->render('helloWorld');

в представлении:

echo $this->time;
0 голосов
/ 27 октября 2013

Хорошо, инструкция в книге специально гласит: «Измените предыдущий пример, определив свойство общедоступного класса в MessageController ... ... затем отобразите время в файле представления, обратившись к этому свойству класса через $ this.

Как говорится, это то, что я придумал:

В MessageController.php:

            class MessageController extends Controller
            {
                public $defaultAction = 'hello';
                public $theTime; // as per book's instructions

                public function actionHello()
                {
                    $this->theTime = date("D M j G:i:s T Y");
                    $this->render('hello');
                }

В защищенном / views / message / hello.php:

            <h1>Hello, World!</h1>
            <h3>
            <?php echo $this->theTime; ?>
            </h3>

Это работает для меня, и я понимаю, что происходит в коде. Будучи новичком, это важно: знать, что вы делаете, и реализовывать это.

0 голосов
/ 09 октября 2013

В контроллерах / файле MessageController.php

    class MessageController extends Controller
    {
       public $theTime;

       public function init()
       {
           $this->theTime = date("D M j G:i:s T Y");
       }

       public function actionHelloWorld()
       {
           $this->render('helloWorld',array('time'=>$this->theTime));
       }
     }

In views / message / helloWorld.php

    <h3><?php echo $time; ?></h3><hr/>
0 голосов
/ 14 июня 2011
   // I defined $MyClassTime as a public class variable in "MessageController.php" 
    //as follows:

    class MessageController extends Controller
    {
        public $MyClassTime;

        public function actionHelloWorld()
        {
            $this->MyClassTime = "From Public Class Property: " . date("D M j G:i:s T Y");      

            $this->render('helloWorld');

        }

        public function actionIndex()
        {
            $this->render('index');
        }

    // And then did this in "helloWorld.com":

        <?php
        $this->breadcrumbs=array(
            'Message'=>array('message/index'),
            'HelloWorld',
        );?>
        <h1>Hello, World!!</h1> 
        <h3><?php echo $this->MyClassTime; ?></h3>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...