Проблема / Вопрос : я использую CodeIgniter для создания календаря событий, и я включил возможность обмена.Этот параметр работает на базовом уровне, но отображает только идентификатор пользователя (первичный ключ) в <ul>
.Это не идеально, и я хотел бы показать имена и фамилии пользователей вместо <ul>
.Я думал, что создание ассоциативного массива будет работать, но я получаю прикольные результаты.При загрузке страницы имя и фамилия отображаются как «Массив массивов», а идентификатор URL-адреса отображается как «Массив» при выборе ссылки «Массив массивов».Мне интересно, что не так в моей логике.
Прикольная ссылка, сгенерированная в представлении :
Array Array
Прикольный URL, который связан с "Array Array":
http://example.com/user/shared/view/Array
Модифицированный контроллер :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Shared extends Common_Auth_Controller {
private $end_user;
public function __construct()
{
parent::__construct();
$this->end_user = $this->ion_auth->user()->row();
$data['end_user'] = $this->end_user;
$this->load->vars($data);
$this->load->model('events_model', 'events');
}
public function index()
{
$title['title'] = 'Shared';
$this->load->model('shared_model','shared');
$data['sharers'][] = array(
'shared_owner_id' => $this->shared->get($this->end_user->id),
'owner_first_name' => $this->shared->get($this->end_user->first_name),
'owner_last_name' => $this->shared->get($this->end_user->last_name),
);
$this->load->view('public/head_view', $title);
$this->load->view('user/header_view');
$this->load->view('user/shared_view', $data);
$this->load->view('user/footer_view');
}
Модифицированный просмотр :
<div class="hide-on-phones">
<ul>
<?php foreach($sharers as $key => $value): ?>
<li><a href="<?php echo base_url('user/shared/view/'.$value['shared_owner_id']) ?>"><?php echo $value['owner_first_name']." ".$value['owner_last_name'] ?></a></li>
<?php endforeach; ?>
</ul>
</div>
Модель :
class Shared_model extends crud_model {
public function __construct()
{
parent::__construct();
$this->pk = 'id';
$this->table_name = 'shared';
}
public function get($shared_to_user_id)
{
$this->db->where('shared_to_id', $shared_to_user_id);
$ids = parent::get_all();
$users = array();
foreach ($ids as $id)
{
$users[] = $id->owner_id;
}
return $users;
}
}
Большое спасибо за вашу помощь, и дайте мне знать, если есть какая-либо дополнительная информация, которая может потребоваться.Ниже приведены исходный вид и контроллеры, которые работают, но не являются предпочтительными.
Оригинальный контроллер :
public function index()
{
$title['title'] = 'Shared';
$this->load->model('shared_model','shared');
$data['sharers'] = $this->shared->get($this->end_user->id);
$this->load->view('user/head_view', $title);
$this->load->view('user/header_view');
$this->load->view('user/navigation_view');
$this->load->view('user/shared_view', $data);
$this->load->view('user/footer_view');
}
Исходный вид :
<?php foreach($sharers as $s): ?>
<li><a href="<?php echo base_url('user/shared/mobile/'.$s) ?>"><?php echo $s ?></a></li>
<?php endforeach; ?>
Отказ от ответственности : Я новичок в веб-разработке, и я сосу на ассоциативные массивы (очевидно).