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