背景
我正在将所有旧脚本移到cakePHP框架上。原因是尝试查找和修复错误所花费的时间更少,而且必须更好地布局和构造。哦,速度。但随之而来的是一个巨大的学习曲线。这是我的第一个带有cakePHP的应用程序,所以我对框架的功能和能力非常新(并且毫无头绪)。
我的问题
在较旧的脚本中,我递归地查看字母表以从以该特定字母开头的数据库中检索名称。这些结果根据他们的起始字母进行了分类。
为实现这一目标,我的旧脚本看起来像这样:
$letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
for($l = 0; $l < strlen($letters); $l++) {
$names = mysql_query("SELECT name,ext,new FROM admin_extensions WHERE office = '" . $_GET['branch'] . "' AND name LIKE '" . $letters[$l] . "%' ORDER BY name ASC")or die(mysql_error());
// Do something fancy...
}
我不知道如何将其翻译成cakePHP。该脚本将内容输出到excel表。以下是excel表格的小视图:
问题
我的问题很简单:如何使用cakePHP达到同样的效果?由于这会生成excel表,我需要能够a)在视图中执行此操作,或者b)将数据传输到视图文件。
这可能吗?
答案 0 :(得分:0)
所以经过一些更多的出汗,我就把它解决了。
我是这样做的。
在我的控制器中:
$letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
for($l = 0; $l < strlen($letters); $l++) {
$adminExtensions[$letters[$l]] = $this->AdminExtension->find('all',
array(
'conditions' => array(
'AND' => array(
'AdminExtension.location_id'=>'3',
'HrEmployee.name LIKE '=>$letters[$l].'%'
)
)
)
);
}
$this->set(compact('adminExtensions'));
在我看来,我这样做了:
$letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$k = 1;
for($l = 0; $l < strlen($letters); $l++) {
$this->PhpExcel->write('B'.($l+$k+1),$letters[$l]);
foreach ($adminExtensions[$letters[$l]] as $adminExtension) {
$k++;
$this->PhpExcel->write('A'.($l+$k+1),$adminExtension['HrEmployee']['name'] . ' ' . $adminExtension['HrEmployee']['surname']);
$this->PhpExcel->write('B'.($l+$k+1),$adminExtension['AdminExtension']['ext']);
}
}
完美无缺! :)