пустой () не работает в cakephp

У меня есть таблица products и я хочу выбрать все продукты. Это то, что я сделал

$products = $this->Products->find('all', [
   'conditions' => [
       'status' => 1
   ]
]);
$this->set('products', $products);

и печатать продукты, если они получены, и No product found, если продукт не получен.

Это то, что я сделал для этого

if (!empty($products)):
   // show products
else:
   echo 'No Products Found';
endif;

Но это не работает, даже если товар не найден, иначе условие не напечатано.

Если условие не работает даже в действии контроллера. Чего-то не хватает?

Я использую CakePHP 3.2.


person Gaurav    schedule 14.08.2016    source источник
comment
Вы пытались сбросить содержимое $products?   -  person dlondero    schedule 14.08.2016
comment
ты имеешь в виду debug ? Если да, да, я пытался отладить, но продуктов нет. Пробовал даже после очистки таблицы от phpmyadmin и то не работает   -  person Gaurav    schedule 14.08.2016
comment
Какую версию CakePHP вы используете? Вы не можете рассчитывать на получение соответствующей помощи, если не предоставите эти основные сведения.   -  person Object Manipulator    schedule 14.08.2016


Ответы (3)


для проверки содержимого, которое является нулевым или не использует функцию isEmpty() в CakePHP 3.0.5

if (!$products->isEmpty()) {
   // show products  
}
else
   echo 'No Products Found';
person ashkufaraz    schedule 14.08.2016

Попробуй это..

if (!empty($products->toArray())):
   // show products
else:
   echo 'No Products Found';
endif;
person Community    schedule 15.08.2016

Если ваш cakephp 3.0.5 или выше, прочитайте ответ ashkufaraz, иначе вы можете использовать:

if(count($products) > 0)
 {
     //Print ya products
 }
else
 {
    echo 'No products found';
 }
person Vini Antichrist    schedule 16.08.2016