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

qwe*_*001 3 php twig codeigniter-3

我想获取数组中的键名。

首先,我的管理控制器是这样写的。

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');
    }
}
Run Code Online (Sandbox Code Playgroud)

如果方法已完成,我的闪存数据包含这样的消息。

'flash_message' => array(
    'success' => 'create complete'
);
Run Code Online (Sandbox Code Playgroud)

所以我这样写下我的看法。

{% 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 %}
Run Code Online (Sandbox Code Playgroud)

我希望我可以使用 php key 函数来更改 css 类名“成功”或“危险”。

{% 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 %}
Run Code Online (Sandbox Code Playgroud)

我知道键的功能,但需要循环数组。我不想这样做,因为数组只有一个元素。这就是我问的原因。我怎样才能做到这一点?谢谢。

qwe*_*001 9

我解决了这个问题。我可以通过这段代码获取密钥名称。

{{ flash_message | keys | first }}
Run Code Online (Sandbox Code Playgroud)