如何使用视图和控制器

时间:2014-06-18 17:23:36

标签: cakephp

我正在尝试学习CakePHP是如何工作的,但我卡住了,我只是想显示用户名。我在好的控制器和良好的视野中工作......我不明白。

查看=>用户=> index.ctp

<h1>Users List</h1> <table>

    <tr>
        <th>Username</th>

    </tr>

   <?php foreach ($users as $k): ?>

    <tr>

        <td><?php echo $k['username']; ?></td> 

    </tr> 

    <?php endforeach; ?> 

    </table>

Controller =&gt; UsersController

    <?php
    class UsersController extends AppController{

        public function index() {
        $users = $this->User->find('all',array('fields' => array('id','username','created')));
        debug($users);
        }

    }
    ?>

使用调试,我有我想要的但我无法在foreach中显示结果。

 array(
        (int) 0 => array(
            'User' => array(
                'id' => '2',
                'username' => 'CREAZ',
                'created' => '2014-06-17 23:39:52'
            )
        ),
        (int) 1 => array(
            'User' => array(
                'id' => '3',
                'username' => 'test2',
                'created' => '2014-06-18 16:57:37'
            )
        )
    )

我在观点中得到的错误:

Notice (8): Undefined variable: users [APP\View\Users\index.ctp, line 9]

Warning (2): Invalid argument supplied for foreach() [APP\View\Users\index.ctp, line 9]

Notice (8): Undefined variable: users [APP\View\Users\index.ctp, line 13]

Warning (2): Invalid argument supplied for foreach() [APP\View\Users\index.ctp, line 13]

1 个答案:

答案 0 :(得分:0)

您应首先在控制器中设置users变量,如下所示:

  <?php
    class UsersController extends AppController{

        public function index() {
        $users = $this->User->find('all',array('fields' => array('id','username','created')));
        debug($users);
        $this->set('users', $users);
        }

    }
    ?>

并在视图index.ctp中,如下所示:

<h1>Users List</h1> 
<table>

    <tr>
        <th>Username</th>

    </tr>

   <?php foreach ($users as $k): ?>

    <tr>

        <td><?php echo $k['User']['username']; ?></td> 

    </tr> 

    <?php endforeach; ?> 

    </table>