我有一个与这个问题相同的问题,除了可能发生多个_
在文本中。
一个例子;
57b42a0557cdd_Filename_whatever.pdf
如何省略第一个下划线(包括下划线)之前的所有内容,以保持其余部分,如Filename_whatever.pdf
随机唯一符可以是不同的长度,但在它和实际文件名之间总是有一个下划线。
就像前面提到的问题一样;{{ filename|split('_')[1] }}
可能工作,但如果实际的文件名有一个下划线呢?
我希望它最好在树枝只是为了显示的目的,因为完整的唯一名称是用于项目的不同部分,以及
在文档中可以看到,split
也像explode
一样支持limit
参数,所以您可以这样做:
{{ '57b42a0557cdd_Filename_whatever.pdf' | split('_', 2)[1] }}
{{ '57b42a0557cdd_Filename_what_ever.pdf' | split('_', 2)[1] }}
{{ '57b42a0557cdd_File_name_whatever.pdf' | split('_', 2)[1] }}
另一个选项(假设文件是实体的一部分)是在实体上编写一个函数,返回您想要的内容。
例如,
<?php
namespace AppBundle'Entity;
class MyEntity
{
// ... other attributes
private $hashFileName;
private $cleanFileName;
// other functions
public function getHashFileName()
{
// as per you example; 57b42a0557cdd_Filename_whatever.pdf
return $this->hashFileName;
}
public function getCleanFileName()
{
$withouthash = explode('_', $this->hashFileName,2);
return $withouthash[1];
}
}
然后在你的小枝文件;
{{ myObject.cleanfilename }}