如何在CodeIgniter与PHP中通过ID获取编辑名称?
嘿,作为CodeIgniter新手,这个根据编辑ID获取名称的需求其实非常基础且实用,我来一步步带你实现它,全程贴合CodeIgniter的MVC规范来~
实现步骤
1. 编写Model(数据模型)
CodeIgniter里数据操作最好放在Model层,这样更符合架构规范。首先在application/models目录下创建(或修改)一个名为Editor_model.php的文件,内容如下:
<?php class Editor_model extends CI_Model { public function __construct() { parent::__construct(); // 加载数据库连接,如果你全局配置了自动加载可以省略这行 $this->load->database(); } /** * 根据编辑ID获取名称 * @param int $editor_id 编辑的ID * @return string|null 返回编辑名称,无匹配则返回null */ public function get_editor_name($editor_id) { // 从editor表中查询id匹配的记录 $query = $this->db->get_where('editor', ['id' => $editor_id]); // 判断是否查询到结果 if ($query->num_rows() > 0) { // 获取单条记录的数组,返回name字段值 $row = $query->row_array(); return $row['name']; } else { // 没有匹配的ID时返回null或你想要的默认值,比如'未知编辑' return null; } } }
2. 在Controller(控制器)中调用模型
接下来在你需要使用这个功能的控制器里,先加载模型,再调用方法。比如创建一个Editor_controller.php:
<?php class Editor_controller extends CI_Controller { public function __construct() { parent::__construct(); // 加载刚才写的Editor模型 $this->load->model('Editor_model'); } // 示例方法:比如根据URL传递的ID获取名称 public function get_name($editor_id) { // 调用模型方法 $editor_name = $this->Editor_model->get_editor_name($editor_id); // 处理结果:比如传递给视图,或者直接输出 if ($editor_name) { echo "编辑名称:" . $editor_name; } else { echo "未找到该编辑"; } // 如果要传给视图,可以这样: // $data['editor_name'] = $editor_name; // $this->load->view('your_view', $data); } }
3. 额外小提示
- 如果你用的是CodeIgniter 4,写法会略有不同,模型需要继承
CodeIgniter\Model,查询方式也更简洁:<?php namespace App\Models; use CodeIgniter\Model; class EditorModel extends Model { protected $table = 'editor'; protected $primaryKey = 'id'; public function getEditorName(int $editor_id) { $row = $this->where('id', $editor_id)->first(); return $row ? $row['name'] : null; } } - 记得确认你的
editor表中确实有id(主键)和name字段,字段名要和代码里对应上哦~ - 可以根据需求调整返回值,比如没找到时返回
'未知编辑'而不是null,更友好。
内容的提问来源于stack exchange,提问作者Ahmed Gaber
相关产品推荐
相关产品推荐

