如何在Twig中获取数组的第一个键名?

3

我希望能够获取数组中的键名。

首先,我的管理员控制器写成了这样。

Original Answer: "最初的回答"

class Admin_Controller extends MY_Controller
{
    const FLASHDATA_NAME = "admin_notice";

    public function index()
    {
        $data['flash_message'] = $this->session->flashdata(self::FLASHDATA_NAME);
        $this->twig->display('index', $data);
    }

    public function store()
    {
        $this->session->set_flashdata(self::FLASHDATA_NAME, array('success' => 'create complete'));
        redirect('index');
    }

    public function destroy()
    {
        $this->session->set_flashdata(self::FLASHDATA_NAME, array('danger' => 'delete complete'));
        redirect('index');
    }
}

如果方法已完成,我的flashdata将包含以下消息:"最初的回答"。
'flash_message' => array(
    'success' => 'create complete'
);

我写下了我的观点,如下所示:

最初的回答。

{% if flash_message %}
<div class="alert alert-success alert-dismissible">
  <button type="button" class="close" title="close" data-dismiss="alert" aria-hidden="true">x</button>
  <h5><i class="icon fa fa-check"></i>{{ flash_message | first }}</h5>
</div>
{% endif %}

我希望能够使用 PHP 的关键函数来更改 CSS 类名 "success" 或 "danger"。

最初的回答:

{% if flash_message %}
<div class="alert alert-{{ key(flash_message[0]) }} alert-dismissible">
  <button type="button" class="close" title="close" data-dismiss="alert" aria-hidden="true">x</button>
  <h5><i class="icon fa fa-check"></i>{{ flash_message | first }}</h5>
</div>
{% endif %}

我知道`keys`函数,但那需要循环一个数组。我不想这么做,因为数组只有一个元素。这就是为什么我问的原因。我该怎么办?谢谢。翻译成:我知道`keys`函数,但它需要循环一个数组。而我不想这样做,因为数组只有一个元素。所以我想问,有什么其他方法可以实现吗?谢谢。
1个回答

9

我解决了这个问题。 我可以通过以下代码获取键名。

{{ flash_message | keys | first }}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接