使用cakephp检查表中是否有条目

使用cakephp检查表中是否有条目,php,mysql,cakephp,Php,Mysql,Cakephp,我正在使用cakephp并尝试检查表中是否输入了数据。如果没有数据,则显示一条消息,说明“无数据”。如果有数据,则显示它 我可以很好地显示结果,只是不知道如何告诉cakephp检查表中是否有任何信息 我是否将用于检查的逻辑放入模型中,并在视图中引用该模型功能?一般来说,我不熟悉cakephp和MVC,所以我仍在尝试了解数据流动的方式 编辑-这是我的索引文件代码。当我只列出了$mysorts而没有函数时,我收到了以下错误 分析错误:语法错误,意外的T_变量,在 <h1>Sorted E

我正在使用cakephp并尝试检查表中是否输入了数据。如果没有数据,则显示一条消息,说明“无数据”。如果有数据,则显示它

我可以很好地显示结果,只是不知道如何告诉cakephp检查表中是否有任何信息

我是否将用于检查的逻辑放入模型中,并在视图中引用该模型功能?一般来说,我不熟悉cakephp和MVC,所以我仍在尝试了解数据流动的方式

编辑-这是我的索引文件代码。当我只列出了$mysorts而没有函数时,我收到了以下错误

分析错误:语法错误,意外的T_变量,在

<h1>Sorted Entries</h1>
<?php
 echo $this->Html->link("Add List", array('action' => 'add')); 
   if (!empty($mysorts)) {
  ?>
<table>
   <tr>
       <th>ID</th>
       <th>Original</th>
       <th>Sorted</th>
   </tr>

  <?php  foreach ($mysorts as $mysort): ?>
         <tr>
             <td><?php echo $mysort['Mysort']['id']; ?></td>
             <td>
                 <?php echo $mysort['Mysort']['original']; ?>
             </td>
             <td> <?php echo $mysort['Mysort']['sorted']; ?>
             </td>
         </tr>
   <?php endforeach;
         } else {
        echo '<p>No results found!</p>';
        }
   ?>
</table>
假定

$mysorts = $this->Mysort->find('all');
$this->set('mysorts', $mysorts);
在控制器中,然后可以在视图中进行检查:

class MysortsController extends AppController {
  public $helpers = array('Html', 'Form');

  public function index() {
         $this ->set('mysorts', $this->Mysort->find('all'));  

  }

 public function add() {
        if($this->request->is('post')) {
        $this->Session->setFlash('yes');
        $this->redirect(array('action' => 'index'));
        }
 }

 function isempty(){
           $mysorts = $this->Mysort->find('all');
           $this->set('mysorts', $mysorts);
  }
}
?>
if (!empty($mysorts) {
    // table and foreach loop
} else {
    echo '<p>No results found!</p>';
}
if(!empty($mysorts){
//表和foreach循环
}否则{
回显“未找到结果!

”; }
如果要从视图中使用任何控制器方法,可以使用请求操作

class MysortsController extends AppController {
  public $helpers = array('Html', 'Form');

  public function index() {
         $this ->set('mysorts', $this->Mysort->find('all'));  

  }

 public function add() {
        if($this->request->is('post')) {
        $this->Session->setFlash('yes');
        $this->redirect(array('action' => 'index'));
        }
 }

 function isempty(){
           $mysorts = $this->Mysort->find('all');
           $this->set('mysorts', $mysorts);
  }
}
?>
$result = $this->requestAction(array(
                                'controller' => 'mycontroller', 
                                'action' => 'action')
                 );   // $result will have return value from your action

echo $this->requestAction(array(
                                'controller' => 'mycontroller', 
                                'action' => 'action'),
                          array('return')
                 );   // will return rendered view
请求操作是否应该使用它一直是一个争论的话题。有人说与缓存一起使用不会对性能造成太大影响,也有人说是另一种方式。不久前,我浏览了一篇文章,其中说请求操作并没有大家预期的那么糟糕


尽管如此,请避免使用此选项。我更喜欢对控制器进行ajax调用。

谢谢,这正是我想要的。再想一想,我有一个问题。我让它工作了,但我必须在控制器中创建一个函数,我将其命名为isempty。为什么我们能够不调用变量$mysorts而不调用func选项isempty?你能发布代码吗?为什么你必须创建一个函数isempty()?你想在视图中调用函数isempty()?你不能这样做,你必须调用isempty()函数,或者为isempty创建一个视图。我理解你的意思,但我不确定如何实现它。如果我不能调用函数,如何让视图执行我想要的操作(显示表或“无信息”)?
class MysortsController extends AppController {
  public $helpers = array('Html', 'Form');

  public function index() {
         $this ->set('mysorts', $this->Mysort->find('all'));  

  }

 public function add() {
        if($this->request->is('post')) {
        $this->Session->setFlash('yes');
        $this->redirect(array('action' => 'index'));
        }
 }

 function isempty(){
           $mysorts = $this->Mysort->find('all');
           $this->set('mysorts', $mysorts);
  }
}
?>