我正在使用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);
}
}
?>
答案 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调用控制器。