检查表是否包含cakephp的条目

时间:2012-03-22 17:42:41

标签: php mysql cakephp

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

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

我是否将逻辑用于检查我的模型并在视图中引用该模型函数?我是cakephp和MVC的新手,所以我仍然试图抓住数据流的方式。

编辑 - 这是我的索引文件代码。当我只是没有功能列出的$ mysorts我收到以下错误。

解析错误:语法错误,意外T_VARIABLE,期待T_FUNCTION ...

<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>

这是我的控制器     

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);
  }
}
?>

2 个答案:

答案 0 :(得分:1)

假设

$mysorts = $this->Mysort->find('all');
$this->set('mysorts', $mysorts);

在控制器中,您可以查看视图:

if (!empty($mysorts) {
    // table and foreach loop
} else {
    echo '<p>No results found!</p>';
}

答案 1 :(得分:0)

如果您想使用视图中的任何控制器方法,可以使用 requestAction

$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调用控制器。