Класс таблицы CodeIgniter: добавление ссылки из сгенерированной ячейки - PullRequest
4 голосов
/ 09 января 2009

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

Модель

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, который позволяет мне ссылаться на страницу данных только для идентификатора этого отчета. Я знаю, что могу просто вывести таблицу старомодным способом вручную. Затем я могу добавить любые ссылки, которые захочу, но я бы хотел использовать автогенерацию как можно больше. Должен быть способ сделать что-то общее, связав ячейку таблицы. У кого-нибудь есть идеи?

EDIT

Пользователь 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;
}

Мне просто нужно было заменить значение в исходном массиве версией якорного текста.

Ответы [ 2 ]

7 голосов
/ 09 января 2009

Единственный способ заключается в том, что в функции 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, но приведенный выше код должен дать вам общее представление о том, что вам нужно делать.

1 голос
/ 09 января 2009

Одной из идей может быть что-то вроде ..

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...