Класс таблицы CodeIgniter:Добавьте ссылку Из Сгенерированной ячейки

StackOverflow https://stackoverflow.com/questions/426393

Вопрос

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

Модель:

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;
}

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

Это было полезно?

Решение

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

Другие советы

Одна из идей могла бы заключаться в том, чтобы сделать что-то вроде..

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();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top