Вопросы | codeigniter

Класс таблицы CodeIgniter: добавление ссылки из сгенерированной ячейки

Вопрос

Ian | 7231 просмотров | рейтинг: 7

Я использую класс таблиц, который автоматически генерирует для меня таблицу из массива данных, извлеченных из моей базы данных. Модель: Функция

 function get_reports_by_user_id($userid)
{
    return $this->db->get_where(ss2_report,array(userid => $userid))->result_array();
}
 
контроллер:
 function index()
{
    echo $this->table->generate($this->mymodel->get_reports_by_user_id(1234));
}
 
Контроллер в конечном итоге будет перемещен в представление, когда он у меня будет работать. Это создает таблицу просто отлично, но я хотел бы добавить ссылку на поле. Например, столбец id, который позволяет мне ссылаться на страницу данных только для идентификатора этого отчета. Я знаю, что могу просто вывести таблицу старомодным способом вручную. Затем я могу добавить любые ссылки, которые захочу, но я бы хотел использовать автогенерацию как можно больше. Должен быть способ сделать что-то общее, связав ячейку таблицы. У кого-нибудь есть какие-либо идеи? РЕДАКТИРОВАТЬ: Пользовательский Java PHP имеет это в основном прямо ниже. Вот код, который заставляет его работать: Функция
 function get_reports_by_user_id($userid)
{
    $rows = $this->db->get_where(ss2_report,array(userid => $userid))->result_array();

    foreach ($rows as $count => $row)
    {
        $rows[$count][id] = anchor(report/.$row[id],$row[id]);
    }
    return $rows;
}
 
Мне просто нужно было заменить значение в исходном массиве на текстовую версию якоря.

Комментарии:

Ian

Вместо того, чтобы использовать, вы можете сделать: foreach (as =>) и будет автоматически увеличиваться с каждой итерацией.


Click Upvote

еще раз спасибо, обновил код с этим улучшением.




Ответы

FryGuy

+ 1 -
Одна идея может быть сделать что-то вроде ..
 foreach ($row in $this->mymodel->get_reports_by_user_id('1234'))
{
    $row->id = anchor(site_url(array('report', 'user', $row->id)), $row->id);
    $this->table->add_row($row);
}
$this->table->generate();
 

 


Click Upvote

+ 7 -
Единственный способ - в функции get_reports_by_user_id() вы просматриваете все результаты и добавляете тег <a href> в идентификаторы. Что-то вроде этого: Функция
 function get_reports_by_user_id($userid)
{
   $rows=$this->db->get_where('ss2_report',array('userid' => $userid))->result_array();
   foreach ($rows as $row)
   {
     $row->id=anchor('site.com/some_controller/some_function/'.$row->id,$row->id);
   }
   return $rows;
}
 

Я не использую библиотеку базы данных CodeIgniter, поэтому я не уверен, в каком формате она возвращает $rows, но приведенный выше код должен дать вам общее представление о том, что вам нужно делать.


Теги

codeigniter | anchor | code-generation