2017-01-31 5 views
0

Чтобы быть ясным, у меня нет никакого предыдущего опыта работы с CodeIgniter.Обновление версии CodeIgniter - ограничение построителя запросов(), создающее пустой массив

Был назначен старый веб-сайт, где версия CI обновилась до последней версии, а некоторые из петель ничего не отображают. Заметили, что проблема начинается с строки построителя запросов, в которой используется функция limit().

в контроллере Home.php, функция __construct() делает:

$this->load->orm('db_et_comu_news', 'news'); 

и после этого, функция index() имеет:

$this->_data['news'] = $this->news->where('status',1)->where('id_et_cat_comu_news',2)->order_by('data','DESC')->limit(7)->find_all(); 

Это работало в прошлом версии CI и вернулся совершенно рабочий массив результатов, но после обновления все, что я получаю, это пустой массив. Если удалить limit() из запроса сделать это следующим образом:

$this->_data['news'] = $this->news->where('status',1)->where('id_et_cat_comu_news',2)->order_by('data','DESC')->find_all(); 

Запрос возвращает хороший здоровый массив, но не ограничивая мои строки до 7, как хотелось бы.

Я проверил документацию CI 3.1.3, и функция кажется для правильного применения. Может ли кто-нибудь помочь мне определить проблему?

ответ

1

Замените код контроллера на это.

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Home extends CI_Controller 
{ 
    function __construct() { 
     parent::__construct(); 
    } 

    function index() 
    { 
     $data['news'] = $this->news(); 

     if(!empty($data['news'])) 
     { 
      foreach($data['news'] as $objects) 
      { 
      echo $objects->data; 
      } 
     } 

    } 

    function news() 
    { 
     $query = $this 
       ->db 
       ->select('*') 
       ->from('db_et_comu_news') 
       ->where('status',1) 
       ->where('id_et_cat_comu_news',"2") 
       ->order_by("data", "DESC") 
       ->limit(7) 
       ->get(); 
     if($query->num_rows()>0) 
     { 
      return $query->result(); // return an array of objects 
     } 
     else 
     { 
      return null; 
     } 
    } 

} 
+0

Я в конечном итоге приходит к такому выводу меня тоже, и надеялся, что я мог бы использовать более простой ответ, так как я должен сделать это в тонну областях, кажется, что это правильный ответ Тхо, спасибо за помощь мне вновь это – XuxuBelezA

Смежные вопросы