为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Codeigniter 4 中的单个控制器中访问两个不同的模型?

如何在 Codeigniter 4 中的单个控制器中访问两个不同的模型?

PHP
Cats萌萌 2023-08-11 17:40:22
我是 Codeigniter 4 的新手,所以我问这个问题。事实上,我有两个不同的型号。首先是tbl_user。其中有很多字段 tbl_user(id, name,duty_station,enlistment_date,dob) // 这里 id 是主键。其次是usermos。usermos 有四个字段 [id, user_id, mos_id, extra_mos_id] //这里id是主键,user_id是tbl_user的外键我已经生成了 get_profile 的控制器...我想将usermos模型访问到get_profile控制器中。以下是我的代码标头<?php namespace App\Controllers;use CodeIgniter\RESTful\ResourceController;use App\Models\MosModel;use App\Models\Additional_mosModel;use App\Models\Api_auth_model;use App\Models\Api_Usermos_Model;控制器public function get_profile()    {           if (($this->request->getMethod() == 'post') && ($_SERVER['PHP_AUTH_USER'] == AUTHUSER_NAME) && ($_SERVER['PHP_AUTH_PW'] == AUTH_PASSWORD)) {        if(!empty($this->request->getPost('id'))){          $user_api_mos_model = new Api_Usermos_Model();        $usermos = $this->user_api_mos_model->findAll();           print_r($usermos);           exit;        if($profile){          if($usermos){                    }          $selected_mos = $this->getMosFromID($usermos[0]['mos_id']);                   $selected_add_mos = $this->getAdd_MosFromID($usermos[0]['additional_mos_id']);          $profile['badge'] = $this->getBadgeFromID($profile['badge_id']);          // exit;          return $this->respond([            "status" => "Success",            "message" => "Profile found.",            "Common" => ["Title" => "Load Profile API", 'version' => '1.0', 'Description' => 'Load Profile API', 'Method' => 'POST'],            "Response" => ["Userdata" => $profile,"mos" => $selected_mos,"additonal_mos" => $selected_add_mos]          ]);        }else{          return $this->respond([            "status" => "Fail",            "message" => "Profile Not found.",            "Common" => ["Title" => "Load Profile API", 'version' => '1.0', 'Description' => 'Load Profile API', 'Method' => 'POST'],            "Response" => ["Value" => 'Profile Not found.']          ]);        }      }    }  }感谢您宝贵的时间。
查看完整描述

1 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

只需在控制器页面标题部分的顶部定义模型的命名空间并在该控制器页面中使用即可。例如:


<?php namespace App\Controllers;

 

use  app\models\User;

use app\models\Usermos;


Class UserController extend controller {

    public function actionProfile (){


      $user = new User();

      $user_mos = new Usermos();

   }

}


查看完整回答
反对 回复 2023-08-11
  • 1 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信