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

时间:2019-05-08 09:40:56

标签: 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');
    }
}

如果方法已完成,则我的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的类名“成功”或“危险”。

{% 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 %}

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

1 个答案:

答案 0 :(得分:1)

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

{{ flash_message | keys | first }}