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





Одна из идей может заключаться в том, чтобы сделать что-то вроде ..
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();
Единственный способ - в функции 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, но приведенный выше код должен дать вам общее представление о том, что вам нужно делать.
Спасибо, в основном правильно. Единственное изменение, которое мне нужно было внести, это то, что было опубликовано в моем отредактированном вопросе.
Вместо использования $ count вы можете сделать: foreach ($ rows as $ count => $ row), а $ count будет автоматически увеличиваться с каждой итерацией.