Cakephp从数据库中检索数据

时间:2016-06-07 11:04:05

标签: cakephp cakephp-2.0

我正在尝试使用Cakephp从数据库中检索数据。

模型----> user.php的

<?php
    App::uses('AppModel', 'Model');
    class User extends AppModel 
    { 
        public $name = 'User'; 


    } 


    ?>

控制器---&GT; UsersController.php

 <?php namespace App\Controller;

    class UsersController extends AppController {

        var $name = 'Users';

        function index()    {

            $this->set('users', $this->User->find('all'));

        }

    }

    ?>

查看---&GT; index.ctp

<h2>Users</h2> 

<?php if(empty($users)): ?> 
    There are no users in this list 
<?php else: ?>
     <table> 
                <tr> 
        <th>Name</th>
        <th>Email</th>
        <th>Phone</th>
        <th>Modified</th>
        <th>Actions</th>
               </tr>

 <?php foreach ($users as $user): ?>
 <tr> 
    <td> 
        <?php echo $user['user_name'] ?> 
    </td>
    <td> 
        <?php echo $user['user_email'] ?> 
    </td>
    <td> 
        <?php echo $user['user_phone'] ?> 
    </td>

     <td> 
        <?php echo $user['created_date'] ?>
    </td> 
    <td> 
        <?php echo $user['modified_date'] ?>
    </td>
     <td>
         <!-- actions on tasks will be added later --> 
    </td> 
 </tr>
 <?php endforeach; ?> 
</table> 
<?php endif; ?>

但它给了我以下错误:

错误:在布尔值上调用成员函数find() 文件C:\ xampp \ htdocs \ demo \ src \ Controller \ UsersController.php 行:11

请有人帮忙。

如果在控制器中使用$this->set('users', $this->Users->find('all'));

,代码可以正常工作

2 个答案:

答案 0 :(得分:0)

看起来您正在使用Cakephp的混合版本。您的模型适用于Cakephp2和Cakephp3的Controller。 Cakephp2不使用命名空间。因此,根据您使用的版本,您必须更新您的代码。

对于Cakephp2,你的控制器看起来应该是这样的:

<?php

App::uses('AppController', 'Controller');

class UsersController extends AppController
{
    public $name = 'Users';

    public function index()    {
        $this->set('users', $this->User->find('all'));
    }
}

答案 1 :(得分:0)

您的版本是CakePhp3,那么您的代码应该是这样的:

<强> SRC \模型\实体\ user.php的

<?php namespace App\Model\Entity;

use Cake\ORM\Entity;

class User extends Entity
{
    protected $_accessible = [
        '*' => true,
        'id' => false,
    ];

}

<强> SRC \控制器\ UsersController.php

<?php namespace App\Controller;

use App\Controller\AppController;

class UsersController extends AppController
{
    public function index()
    {
        $this->set('users', $this->Users->find('all'));
    }
}

<强> SRC \模板\用户\ index.ctp

...
<tbody>
    <?php foreach ($users as $user): ?>
        <tr>
            <td><?= h($user->user_name) ?></td>
            <td><?= h($user->user_email) ?></td>
            <td><?= h($user->user_phone) ?></td>
            <td><?= h($user->created_date) ?></td>
            <td><?= h($user->modified_date) ?></td>
        </tr>
    <?php endforeach; ?>
</tbody>