解決策 #1 if 句を追加するだけです
{% if BasePath == 'post.' %}
{{ url(BasePath~'view', {'post_id':post.postId}) }}
{% elseif BasePath == 'post.current_' %}
{{ url(BasePath~'view') }}
{% endif %}
最もエレガントではないかもしれませんが、うまくいくはずです。
解決策 2
URL を疑問符で分割し、最初の文字列を取得する
{% set myUrl = url(basePath~'view', {'post_id':post.postId}) %}
{{ myUrl|split("?")|first }}
解決策 #3または、twig の RoutingExtension クラスを拡張して url 関数をオーバーライドすることもできます。
Symfony\Bridge\Twig\Extension\RoutingExtension
ここで例を見つけることができますpath
がurl
、同じである必要があります。
この関数をオーバーライドする必要があります
public function getUrl($name, $parameters = array(), $schemeRelative = false)
{
return $this->generator->generate($name, $parameters, $schemeRelative ? UrlGeneratorInterface::NETWORK_PATH : UrlGeneratorInterface::ABSOLUTE_URL);
}
関数は次のようになります。
public function getUrl($name, $parameters = array(), $schemeRelative = false)
{
$yourUrl = parent::getUrl($name, $parameters = array(), $schemeRelative = false);
return strstr($yourUrl, '?' , true);
}
what id oes は、疑問符の後のすべてを削除します。
デフォルトのクラスをオーバーライドするには、パラメーターに追加する必要があります
twig.extension.routing.class: MyNamespace\MyRoutingExtension