【问题标题】:How to use cakephp loadmodel inside the default pages controller?如何在默认页面控制器中使用 cakephp loadmodel?
【发布时间】:2015-06-04 19:34:56
【问题描述】:

我一直试图在 CakePHP 默认页面控制器中加载一个模型,但无济于事。如何在页面控制器中使用 CakePHP 加载模型?以下是我的代码:

public function display() {
$this->loadModel('User');
    $user = $this->User->find('all');
    $this->set('users',$user);
}

这是我的看法,即默认home.ctp:

<?php foreach ($users as $user):
 echo $this->Html->link($user['User']['username'], array('action' =>     'view', $user['User']['id']));
?>
<?php endforeach; ?>

【问题讨论】:

  • 你的问题是什么?
  • 您的代码看起来不错。您的实际问题是什么?

标签: php cakephp


【解决方案1】:

您似乎正在阅读错误版本的文档。 如果你的 CakePHP 版本是 2.x,你不“加载”它,你说控制器使用这样的模型:

<?php
 class MyController extends AppController{
   public $uses = ['ModelName'];//Setting needed tables/models

   public function myAction(){
     //Now you can keep going normally
     $this->set('results', $this->ModelName->find('all'));
   }
 }

但是如果你的 CakePHP 是 3.x。它似乎有正确的调用,但请确保您已在“src/Model/Table/UserTable.php”下创建了相应的文件。

而且select方法变了,见:

<?php
 // in src/Controller/PagesController.php
 namespace App\Controller;

 use App\Controller;

 class PagesController extends AppController{
   public function initialize(){
     parent::initialize();
     $this->loadModel('User');
   }
   public function display(){
     $users = $this->User->find()->toArray();
     $this->set('users', $users);
   }
 }

查看 CakePHP 3.x 的文档here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2016-11-30
    • 1970-01-01
    • 2011-12-15
    • 2015-04-18
    • 1970-01-01
    相关资源
    最近更新 更多