Я использую codeigniter и передаю информацию с контроллера на представление, используя:
$this->load->view('myview', $data);
$ data - это массив и определяется как:
$data['people'] = ....
На мой взгляд, поскольку люди показывают, как
foreach($people as $person) {
echo $person->name . " " . $person->email;
}
Затем у меня есть файл, который берет массив объектов "person" и создает на нем файл csv.
На мой взгляд, у меня есть ссылка на такой файл и хотелось бы передать массив $ people.
Каков наилучший способ сделать это?
Передача массива в ссылке невозможна и ее странно.
Я бы порекомендовал вам передать id
конкретного человека по ссылке
а затем получить данные этого человека, запросив базу данных снова.
Например:
контроллер
class People extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('people_model');
}
public function people()
{
$data['people'] = $this->people_model->get_people();
$this->load->view('myview', $data);
}
public function person_detail($person_id)
{
$person = $this->people_model->get_person($person_id);
// Now you have that person detail
// Do whatever you want
// Write in a file
file_put_contents('filename.txt', print_r($person, true));
}
}
Просмотреть (myview.php)
<table>
<?php foreach($people as $person) { ?>
<tr>
<td><a href="/people/person_detail/{$person->id}"><?php echo $person->id ?></a></td>
<td><?php echo $person->name ?></td>
<td><?php echo $person->email ?></td>
</tr>
<?php } ?>
</table>
Вы можете создать файл CSV с помощью массива и сделать его загружаемым файлом с указанием пути.
Ссылка это
ИЛИ
Вы можете использовать команду generate table в html и преобразовать в csv с помощью javascript
Ссылка Это