php - 带有二维数组的 CodeIgniter 模板库

标签 php model-view-controller codeigniter

我正在使用以下模板 library .我想要做的是在模板中加载一个或多个上层 View ,作为一个数组,以便我可以使用 for-each 循环轻松地将它们加载到模板中。

这是一个关于如何在 Controller 上使用它的简单示例:

    function index() {

    $data['title']  = 'My page title';

    $partials = array('content'=>'c_location'); //Load view about inside the template.

    $this->template->load('main', $partials, $data);
    }

在 View 上你有一个像这样的 html:

    <html>
    ....
    <?=$content?>
    ...
    </html?>

这是我正在尝试使用的: Controller :

   $partials = array('content'=>'c_location',
       array(
       'first_upper_content'=>'1_u_location','second_upper_content'=>'2_u_location'
       ) 
   );

例如,我可以为 upper_content 传递顶部标题作为“first_upper_content”,为“second_upper_content”传递幻灯片,然后为“content”传递其余内容。

HTML:

    ...
     <?=$upper_content?> 

     <--if upper_content is a array, 
     I could display each content with a for loop-->

     <?=$content?>

当我尝试一切时,我得到:

Message: pathinfo() expects parameter 1 to be string, array given

Filename: core/Loader.php

Line Number: 759

我该如何实现?我正在考虑修改

// Load views into var array

在 Template.php 中并向 html 添加一个 foreach 循环;

最佳答案

这就是你想要的:

    // Load views into var array
    foreach(array_flat($view) as $key => $file)

在 Template.php 中包含“array_flat”函数调用,如上所示。

您将需要定义此函数。您可以在任何自动加载的帮助程序中执行此操作,甚至可以将其包含在自己的模板类中(在这种情况下,您应该在上面的代码中将其称为 $this->array_flat)。这是它:

function array_flat($array)
{
    $result = array();

    foreach ($array as $key => $value)
    {
        if (is_array($value))
        {
            $result = array_merge($result, array_flat($value));
        }
        else
        {
            $result[$key] = $value;
        }
    }

    return $result;
}

关于php - 带有二维数组的 CodeIgniter 模板库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9269473/

相关文章:

c# - 如何在不调用 Controller 的情况下刷新 MVC webgrid

javascript - Codeigniter上传带有数组字段名称的图像文件

php - 当需要多种尺寸时,图像应该如何存储?

php - 搜索表单的条件

php - 从 XML 响应中提取某些值以创建自定义 JSON 数组

php - 用逗号(,)将数组数据存储到字符串中

java - JSP菜单设计建议

c# - 从 Active Directory 进行身份验证,但从 MVC 中的 SQL 数据库授权角色

javascript - 如何在 CodeIgniter 中创建自动完成搜索字段?

api - Codeigniter REST API、json 响应中缺少最后几个字符