gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 07:07:34 27 4
gpt4 key购买 nike

我正在使用以下模板 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com