【问题标题】:Achieve the same recursion effect with cakePHP用 cakePHP 实现同样的递归效果
【发布时间】:2013-02-13 14:32:34
【问题描述】:

背景

我正在将所有旧脚本移至 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) 将数据传输到视图文件。

这可能吗?

【问题讨论】:

    标签: php mysql cakephp-2.2


    【解决方案1】:

    所以在多出汗之后,我解决了。

    我是这样做的。

    在我的控制器中:

    $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']);
        }
    }
    

    完美运行! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 2020-08-13
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 2019-04-07
      • 2014-04-15
      相关资源
      最近更新 更多