是不是真的不可能在树枝上做简单的数学或我错过了什么?如果我正在显示带有循环的项目,并且我想要总结项目价格我该怎么办?
{% for item in product %}
<tr>
<td> <img width="60" src="{{ asset('bundles/mpFrontend/assets/products/4.jpg') }}" alt=""/></td>
<td>{{ item.model }}</td>
<td>
<div class="input-append"><input class="span1" style="max-width:34px" placeholder="1" id="appendedInputButtons" size="16" type="text">
<button class="btn" type="button"><i class="icon-minus"></i></button>
<button class="btn" type="button"><i class="icon-plus"></i></button>
<button class="btn btn-danger" type="button"><a href="{{ path('cart_remove', {'id': key}) }}"><i class="icon-remove icon-white"></i></button>
</div>
</td>
<td>{{ item.price }}</td>
<td>{{ item.discount }}</td>
<td>{{ item.value }}</td>
<td>{{ item.pc }}</td>
</tr>
<tr>
<td colspan="6" align="right">Total Price: </td>
<td>{{ item.price|something }}</td> /// count here
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
UPDATE
我的扩展课程:
<?php …Run Code Online (Sandbox Code Playgroud) 我有最简单的数学问题,我无法弄明白(可能整天都在工作累了).这很简单,我循环浏览项目并希望显示最终价格而不需要税等等.问题是我的数学是正确的,但是当我显示价格时,所有项目都具有相同的值(值最后一项).据我所知,每次循环时总变量都在变化,最后一个循环显示最后一个值.如何解决?
public function getTotal($items)
{
$total;
foreach($items as $item){
$total = $item->getPrice() - $item->getDiscount() + $item->getValue();
}
return $total;
}
Run Code Online (Sandbox Code Playgroud)
它应该显示:
Item1: 154
Item2: 77
Run Code Online (Sandbox Code Playgroud)
它显示:
Item1:77
Item2:77
Run Code Online (Sandbox Code Playgroud) 因此,在顶部导航栏中,用户可以选择一种语言。有用。这是代码:routing.yml
homepage:
path: /{_locale}
defaults: { _controller: MpShopBundle:Homepage:index, "_locale": "es"}
requirements:
_locale: es|en
Run Code Online (Sandbox Code Playgroud)
枝条:
<li><a href="{{ path('homepage', {'_locale':'en'}) }}">EN</a></li>
<li><a href="{{ path('homepage', {'_locale':'es'}) }}">ES</a></li>
Run Code Online (Sandbox Code Playgroud)
现在的问题。假设用户将一些产品添加到购物车并访问了购物车页面www.domain.com/cart/shopping-cart。如果他按下其中一个链接,他将被重定向到主索引页面,并且他的语言会发生变化。
如何更改我的代码,以便当用户选择一种语言时,他不会被重定向到新页面,而是使用新的语言环境刷新同一页面。
例如:
当前页面 : www.domain.com/cart/shopping-cart
语言选择后: www.domain.com/cart/shopping-cart/en
并不是: www.domain.com/en
我的所有页面都扩展了导航栏。所以我需要以某种方式获取当前 url 并将 /en 添加到其中。
我得到这样的网址:
{% set currentPath = path(app.request.attributes.get('_route'),
app.request.attributes.get('_route_params')) %}
Run Code Online (Sandbox Code Playgroud)
但是如何在树枝中添加 /en 部分?
对于我的一个对象,我需要创建一些动态表单渲染...但我不知道如何在 Sonata Admin 中执行此操作。例如,当我创建一个对象时,我有一个字段类型。在此字段中,我选择我的对象的类型。现在,当我选择类型时,我想根据类型显示一个字段。例如,如果我选择类型“轮播”,我想显示一个选择实体库中所有对象的字段。如果我选择类型“产品”,我想显示包含所有可供选择的产品的字段...我怎样才能实现这一点?
现在我有这个:
/**
* @param FormMapper $formMapper
*/
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->with('Module', array(
'class' => 'col-md-6'
))
->add('position')
->add('type', null, array(
'attr' => array('class' => 'module_type')
))
->add('items', 'entity', array(
'class' => 'ApplicationSonataMediaBundle:Gallery'
))
->end()
;
}
Run Code Online (Sandbox Code Playgroud)
我已经覆盖了编辑模板:
{% extends 'SonataAdminBundle:CRUD:edit.html.twig' %}
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
$(document).ready(function () {
$(".module_type").change(function() {
});
});
</script>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,画廊现在是硬编码的..
我现在不知道该怎么做...怎么说如果选择的值是这个,则在字段中使用该实体...问题是在 Sonata 中渲染表单的方式非常复杂...我不知道明白它..
也许我应该使用ajax?但是,当我发送一个值并获得响应时,如何在不刷新的情况下添加字段?
任何帮助表示赞赏。