CakePHP 3 - 将数据从表设置为default.ctp

时间:2018-02-06 19:35:34

标签: php cakephp cakephp-3.0

我正在尝试将数据从表格设置为default.ctp。所以在AppController.php中,我添加了:

public function beforeFilter(Event $event)
{
    $usersTable = TableRegistry::get('Users');
    $users = $usersTable->getAllUsers();

    $this->set('users', $users);
}

default.ctp

<?php
    foreach($users as $user){
    echo '<li class="tree-submenu" id="employees-submenu">' . $user['first_name'] . '</li>';
    }
?>

但显然$用户没有设置。 我也尝试在PagesController.php中添加此内容,但在执行此操作后我得到了一个空白屏幕:

public function beforeFilter(Event $event)
    {
        parent::beforeFilter($event);
    }

我需要一些帮助来弄清楚我缺少的东西,我们将非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

当我在设置变量时遇到问题我只做print_r($ users);并且看看是否有任何显示,只是为了确定。

可能性在getAllUsers方法中,但值得注意的是,echo语句包含在单引号中,并且您也在变量中使用单引号。应该尽量保持这些分开。所以改为使用$ user [“first_name”]。

答案 1 :(得分:0)

所以你只是尝试将数据从appcontroller设置为default.ctp

你没有在你的问题中写下“getAllUsers方法”

等.........您可以通过以下代码显示users表中的所有记录

public function beforeFilter(\Cake\Event\Event $event)
{
  $usersTable = TableRegistry::get('Users');
  $users = $usersTable->find('all');
  $this->set('data', $users );
}

和default.ctp

<?php
  foreach($data as $users){
       echo '<li class="tree-submenu" id="employees-submenu">' . 
   $users['first_name']. '</li>';
    }
?>

我在本地尝试它,它会显示表用户中的所有名字。