Cakephp3.0模型新的orm模型如何工作

时间:2015-04-05 05:12:51

标签: cakephp model cakephp-3.0

嘿我正在尝试从表中检索数据我能够通过控制器内的tableregistry获取我的控制器名称是messagecontroller.ph mysql表名是消息: 这是我的代码

 public function view($pid)
{

    $messages = TableRegistry::get('Messages');
 $query = $messages->find();

 foreach ($query as $row) {
   echo $row->title;
  }

如何在messagetable中执行此操作我的意思是如何在消息表中编写它以及如何在控制器中显示它或者它将直接与视图交互

2 个答案:

答案 0 :(得分:0)

我找到了一个如何在cakephp3.0中创建瘦控制器的解决方案

我有一个名为messages的mysql表,我创建了一个两个文件,其中一个MessagesTable.php是代码:

enter code here  <?php
        // src/Model/Table/UsersTable.php
       namespace App\Model\Table;

      use Cake\ORM\Table;
     use Cake\Validation\Validator;
    use Cake\ORM\TableRegistry;

      class MessagesTable extends Table
     {



     public function validationDefault(Validator $validator)
    {
    $validator
        ->notEmpty('title')
        ->notEmpty('messages');

    return $validator;
    }



     function myMessages() {
      $query = $this->find('all');
      $results = $query->all();
      $data = $results->toArray();

      return $data;



      }



       }

这里我创建了一个名为function myMessages()

的函数

我在messagescontroller.php中使用:

调用它
   $data = $this->Messages->myMessages();

完整代码是:

   $data = $this->Messages->myMessages();

    foreach ($data as $row){
   echo $row->title;
     }

答案 1 :(得分:0)

按照以下步骤操作,根据您的表和控制器名称更改ArticlesTable类和控制器类: 在src \ Model \ Table文件夹下创建ArticlesTable.php,如下所示

<?php
namespace App\Model\Table;
use Cake\ORM\Table;
class ArticlesTable extends Table
{

}
?>

在控制器中:

$data = $this->Articles->find();
foreach ($data as $row){
  echo $row->title;
}