Я новичок, использующий Symfony v2.0, и мне интересно, почему моя окончательная цена перезаписывается, несмотря на то, что я использую разные аспекты if
. Окончательная цена использует только последний использованный $this->price
и сбивает мои калькуляторы цен, например:
if ($this->mode == 'coaching')
{
$n = $this->orderDetails->{'hours-number'};
if ($n == 1)
$this->price = 5;
else if ($n == 2)
$this->price = 35;
else if ($n == 3)
$this->price = 45;
else if ($n == 4)
$this->price = 55;
else if ($n == 5)
$this->price = 65;
$this->eta = '1 Day';
$w = 0;
if ($this->orderDetails->{'option'} == 'wins')
{
$w = $this->orderDetails->{'wins-number'} * 2;
$this->price = $w;
}
$p = 0;
if ($this->orderDetails->{'option'} == 'self')
{
$p = $this->orderDetails->{'wins-number'} * 2.5;
$this->price = $p;
}
Будет отображаться только последний $this->price
, несмотря на то, что вызываются только «часы-числа». Могу ли я написать код по-другому, если у меня несколько условий, влияющих на цену?
У меня также есть свои функции, написанные на index.html.twig
:
function updateOrderArray()
{
var nData = {};
$('*[pp-type = "item"]').each(function() {
if ($(this).attr('type') == 'checkbox')
{
nData[ $(this).attr('pp-item-name') ] = $(this).is(':checked');
}
else
{
nData[ $(this).attr('pp-item-name') ] = $(this).val();
}
});
var nJSON = JSON.stringify(nData);
$('input[name = "order_details"]').val(nJSON);
checkDivisions();
calculatePrice();
}
function calculatePrice()
{
$('#arena-price').html('<i class = "fa fa-spinner fa-spin" aria-hidden = "true"></i>');
$('#arena-eta').html('<i class = "fa fa-spinner fa-spin" aria-hidden = "true"></i>');
$.ajax({
method: 'POST',
url: '{{ path('service_price') }}',
dataType: 'JSON',
data: {
mode: 'coaching',
order_details: $('input[name = "order_details"]').val()
}
})
Я новичок, поэтому даже консолью не пользуюсь. Как заставить работать консоль с любой предпочтительной программой? $ n правильно. Прикрепление моих функций по цене.
Вы можете использовать dump($n)
или dd($n)
в любом месте вашего кода. Первый генерирует вывод переменной, а затем продолжает код, а последний будет выгружать + умереть, поэтому он остановит код после вывода переменной, что означает, что следующие строки не выполняются.
Вы можете просто выполнить dd($this->orderDetails)
прямо перед фрагментом кода или сверху, внутри самого внешнего if-условия, а затем вставить сюда вывод. Убедитесь, что это не содержит конфиденциальной информации.
Хорошо, моя консоль заработала, но я не могу сбрасывать файлы, прочту об этом подробнее. Хотя меня сразу осенило, у функции calculatePrice () есть данные: в нем с режимом: коучинг. Могу ли я свободно добавить новый, скажем, тип: 'oneperson', 'twoperson', а затем использовать эти два в моем файле изменения цен? например, if ($ this-> type -> 'oneperson') это сработает?
Не могли бы вы показать пример того, как выглядят входящие данные, то есть
$this->orderDetails
, и, может быть, какой результат вы ожидаете? Ваш код выглядит немного странно, особенно атрибуты с динамическим доступом, такие как$this->orderDetails->{'hours-number'}
. Вы уверены, что$n
имеет ожидаемое значение или что$this->orderDetails->{'option'}
возвращает одно из обоих значений?