Задать вопрос
@thisuserhatephp
Офлайн - losers Онлайн - lusers

Почему 0 возвращает fasle?

Вывожу из базы инфу товара
и передаю массив в шаблон

$id 		  = $row['id']
$name   	  = $row['name'];
$provider 	  = $row['provider'];
$stock_count  = $row['count'];


echo $template->renderBlock('order', [
	'id'		=> $id,
	'name'	=> $name,
	'provider'	=> $provider,
	'count'  	=> $stock_count,
	'filter' 	=> $filter
]);


в шаблоне делаю проверку
{% if count %}
		<li class="order_modal_list">
			<span class="title">Count</span>
			<input type="text" class="stock_count" value="{{count}}" >
		</li>
		{% endif %}


Товары у которых количество 0 ничего не выводит

Убрать проверку в шаблоне не могу так как не всегда нужно выводить количество.

Каким образом можно это исправить, что бы 0 не возвращал false или хотя бы шаблон выводился ?

Буду благодарен помощи!
  • Вопрос задан
  • 191 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 3
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
В обычном PHP-коде для этого используется строгая проверка (с контролем типов):
if ($i !== false) {
В twig это можно сделать через same as: https://twig.symfony.com/doc/2.x/tests/sameas.html
Ответ написан
@thisuserhatephp Автор вопроса
Офлайн - losers Онлайн - lusers
Андрей Ежгуров, Павел Корнилов Спасибо, вам, навели меня на мысль и я решил. сделал проверку в твиге

{% if count is not empty and count >= 0 %}
Если количество больше или равно нулю выдаст ture и код выполнится.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Вопрос конечно странный, а ответы так вообще ужас, но если речь идет о строгом сравнении, то в Твиге для этого используется оператор same as.

То есть если нужно чтобы при нуле отображение было, а при false - нет, то пишем
{% if count is not same as (false)%}

Плюс, как выяснилось, твиговское empty не включает 0, то есть можно написать и так
{% if count is not empty %}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы