2016-06-07 123 views
0

我試圖用CakePHP從數據庫中取回數據。CakePHP從數據庫中取回數據

模型----> user.php的

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


    } 


    ?> 

控制器---> UsersController.php

<?php namespace App\Controller; 

    class UsersController extends AppController { 

     var $name = 'Users'; 

     function index() { 

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

     } 

    } 

    ?> 

視圖---> 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中\演示的\ src \控制器\ UsersController.php 行:11

請,如果有人可以幫助。如果$this->set('users', $this->Users->find('all'));在控制器

+0

什麼版本CakePHP的是? –

+0

版本爲v 0.2.9 –

+0

您正在使用cakephp的混合版本,您的結構和控制器喜歡cakephp3'src \ Controller \ UsersController.php',因爲您的模型來自cakephp2。這個調用'$ this-> Users-> find('all')'是來自Cakephp3,這個'$ this-> user-> find('all')'來自Cakephp2,在cakephp3視圖中,我將在' src \ Template \ Users \ index.ctp'請檢查您的版本 –

回答

0

它看起來像你使用CakePHP的混合版本使用

的代碼工作正常。你的模型用於CakePHP2和CakePHP3的控制器。 Cakephp2不使用命名空間。因此,根據您使用的版本,您必須更新您的代碼。

對於Cakephp2您的控制器應該是這個樣子:

<?php 

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

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

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

這給了我下面的錯誤:Class'App'not found –

+0

這意味着你最有可能不使用cakephp2 – jbe

0

你的版本是CakePhp3那麼你的代碼應該是這樣的:

的src \型號\實體\ user.php的

<?php namespace App\Model\Entity; 

use Cake\ORM\Entity; 

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

} 

src \ Controller \ 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>