在我的cakephp中,我需要从数据库中检索数据。
如何以整洁的格式显示表格结果。
控制器:
function MarketingTaskmanagement(){
$data['list'] = $this->TravancoAdmin->get_task_all();
$this->set($data);
$this->render('Marketing/taskmanagement');
}
型号:
function get_task_all(){
$users = $this->query('select * from tbl_tasks');
if($users){
return $users;
}else{
return 1;
}
}
查看:
但它将值显示为如此多的数组:
Array ( [0] => Array ( [tbl_tasks] => Array ( [task_ids_mm] => 1 [task_title_mm] => ghjg [task_description_mm] => gjg [task_from_mm] => 09/04/2012 [task_to_mm] => 09/27/2012 ) ) [1] => Array ( [tbl_tasks] => Array ( [task_ids_mm] => 2 [task_title_mm] => hf [task_description_mm] => hfgh [task_from_mm] => 09/03/2012 [task_to_mm] => 09/27/2012 ) ) [2] => Array ( [tbl_tasks] => Array ( [task_ids_mm] => 3 [task_title_mm] => hf [task_description_mm] => hfgh [task_from_mm] => 09/03/2012 [task_to_mm] => 09/27/2012 ) ) [3] => Array ( [tbl_tasks] => Array ( [task_ids_mm] => 4 [task_title_mm] => hfh [task_description_mm] => fgh [task_from_mm] => 09/03/2012 [task_to_mm] => 09/20/2012 ) ) [4] => Array ( [tbl_tasks] => Array ( [task_ids_mm] => 5 [task_title_mm] => h [task_description_mm] => h [task_from_mm] => 09/04/2012 [task_to_mm] => 09/28/2012 ) ) [5] => Array ( [tbl_tasks] => Array ( [task_ids_mm] => 6 [task_title_mm] => hjk [task_description_mm] => hk [task_from_mm] => 09/05/2012 [task_to_mm] => 09/22/2012 ) ) [6] => Array ( [tbl_tasks] => Array ( [task_ids_mm] => 7 [task_title_mm] => v [task_description_mm] => v [task_from_mm] => 09/03/2012 [task_to_mm] => 09/28/2012 ) ) [7] => Array ( [tbl_tasks] => Array ( [task_ids_mm] => 8 [task_title_mm] => d [task_description_mm] => d [task_from_mm] => 09/03/2012 [task_to_mm] => 09/28/2012 ) ) [8] => Array ( [tbl_tasks] => Array ( [task_ids_mm] => 9 [task_title_mm] => f [task_description_mm] => d [task_from_mm] => 09/04/2012 [task_to_mm] => 09/27/2012 ) ) [9] => Array ( [tbl_tasks] => Array ( [task_ids_mm] => 10 [task_title_mm] => b [task_description_mm] => b [task_from_mm] => 09/05/2012 [task_to_mm] => 09/27/2012 ) ) )
在codeigniter中有这样的东西:
$users = $this->query('select * from tbl_tasks')->result();
然后显示正确的数组,没有任何复杂情况。
那么我怎样才能在cakephp中做到这一点?
我需要在视图页面中显示表结果中的所有task_title_mm
值。
我该怎么做?
答案 0 :(得分:1)
使用“查找”方法。
$this->ModelName->find('all');
或
$this->ModelName->find('list');
如果您需要查询的信息较少,请输入:
$this->ModelName->recursive = -1;
找到方法之前。
答案 1 :(得分:0)
由于你扩展了你的问题,我将在anwser上详细说明一下。
最好不要使用$this->query()
来进行原生蛋糕搜索。
如果您没有tbl_tasks
创建一个模型文件:
<?php
class Task extends AppModel {
var $name = 'Task';
var $displayField = 'task_title_mm';
var $useTable = 'tbl_tasks';
}
将其加载到get_task_all()
功能中。您可以在另一个内部加载模型。
function get_task_all(){
//load the Task model on the fly if it isnt associated with this one
//loadModel won't work because we're inside a model.
//App:import might work, dunno.
$this->Task = ClassRegistry::init('Task');
$users = $this->Task->find('list');
return $users ? $users : 1;
}
如果您将find('list')
声明为displayField,则 'task_title_mm'
有效,否则您可以使用$this->Task->find('all', array('fields' => array('task_title_mm')));
,但结果将以['Task']
为前缀;
答案 2 :(得分:0)
function get_task_all(){
$ users = $ this-&gt; query('select * from tbl_tasks')....
零。阅读食谱!不,真的,停!在你再进一步之前,我建议至少阅读一次食谱。从一开始就做正确的事情就是要走的路。
使用蛋糕为您提供完成工作的正确方法。 SQL查询可以很好地完成工作,但相信我使用蛋糕的内置方法将使您长期受益并使您的生活更轻松。
根据您对如何以表格格式显示数据的查询,请使用蛋糕烘焙:http://book.cakephp.org/1.3/view/1522/Code-Generation-with-Bake。蛋糕烘焙实用程序将为您的应用程序控制器,模型,视图生成基本支架。蛋糕的默认视图模板非常有用,并且内置了几乎所有功能,分页等。
想要分页结果吗?没问题使用paginate!
function index() {
$this->ModelAlias->recursive = -1;
$this->set('list', $this->paginate());
}
瞧!您在视图中随时可以使用$ list中的分页数据。如果你有你的意见,你可以根据需要在表格中很好地显示所有内容。
不想取一切?将条件插入到paginate中,如下所示:
function index() {
$this->ModelAlias->recursive = -1;
$this->paginate = array(
'conditions' => array('ModelAlias.tasks' => 'incomplete')
);
$this->set('list', $this->paginate());
}
不仅如此,您还可以包含蛋糕支持的“字段”,“订单”,“限制”等几乎任何其他键。
一旦你开始使用蛋糕的功能,事情开始变得非常棒。要获取相关数据,您可以使用蛋糕'可包含'行为。这只是数百种蛋糕确实很好的一件事。我无法概述这里的所有内容,我坚持请你去阅读食谱http://book.cakephp.org