如何在codeigniter中显示名称

kzipqqlq  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(273)

请帮助我,我想从表中显示用户的名称,根据 sender_id 以及 recipient_id ,如何在我的codeigniter中创建代码模型和视图
表架构
数据表用户
数据表消息
模型

function get_pesan_view(){
    $this->db->from('messages');
    $this->db->join('users', 'users.id = messages.sender_id', 'left');
    $this->db->join('users', 'users.id = messages.recipient_id', 'left');
    $q2 = $this->db->get();
    return $q2->result();
 }

控制器

public function view_pesan()
{
    $data['get_pesan']=$this->Emp_model->get_pesan_view();
    $this->load->view('employee/top');
    $this->load->view('employee/nav', $data);
    $this->load->view('employee/slidbar', $data);
    $this->load->view('employee/pesan', $data);
    $this->load->view('employee/bottom');
}

看法

<?php foreach ($get_pesan as $pesan) { ?>
<strong> Sender : <?php echo $pesan->name ; ?> </strong>
<strong> Recipient : <?php echo $pesan->name ; ?> </strong>
<a> <?php echo $pesan->body ; ?></a>
<?php } ?>

我想在视图中同时显示发件人和收件人的名称

uubf1zoe

uubf1zoe1#

型号

$this->db->select('messages.*,u1.{name of field for username} as sender_name,u2.{name of field for username} as recipient_name');
   $this->db->from('messages');
    $this->db->join('users u1', ' u1.id = messages.sender_id', 'left');
    $this->db->join('users u2', ' u2.id = messages.recipient_id', 'left');
    $q2 = $this->db->get();
    return $q2->result();

看法

<?php foreach ($get_pesan as $pesan) { ?>
<strong> Sender : <?php echo $pesan->sender_name; ?> </strong>
<strong> Recipient : <?php echo $pesan->recipient_name; ?> </strong>
<a> <?php echo $pesan->body ; ?></a>
<?php } ?>

我忘了你不能加入一个故事不止一次你需要使用表别名。它将为你工作/只要把名字什么曾经fild名字是在你的数据库。它将工作或共享我屏幕短你的表和错误页

tsm1rwdh

tsm1rwdh2#

控制器

public function get_names(){

  $this->load->model('model_name'); //If not loaded in the autoload.php file
  $names = $this->model_name->all_names();
  $this->load->view('view_file_name', compact('names'));
}

模型中的查询如下

public function all_names(){
  $this->db->select('name');
  $this->db->from('users');
  $this->db->join('messages', 'users.id = messages.sender_id');
  return $this->db->get()->result();
}

加入 recipient_id 你喜欢这样吗

$this->db->join('messages', 'users.id = messages.recipient_id');

然后使用 foreach 循环显示全部 names 在视图中

foreach($names as $row){
   echo $row->name;
}

相关问题