P粉4935341052023-09-01 20:04:17
您可以透過建立新實例或使用 model() 輔助函數來存取類別中的模型。
像這樣的例子
// Create a new class manually $userModel = new \App\Models\UserModel(); // Create a new class with the model function $userModel = model('App\Models\UserModel', false); // Create a shared instance of the model $userModel = model('App\Models\UserModel');
P粉7224099962023-09-01 10:37:48
我發現了問題。這是執行此操作的正確方法。
資料夾結構
#- WebsiteFolder -- Site1 --- app --- public --- tests --- writeable (.env, spark and other file) -- Site2 --- app --- public --- tests --- writeable (.env, spark and other file) -- shared/Models (DBSetting.php) -- system
控制器 - Home.php
#namespace App\Controllers; use shared\Models\DBSetting; class Home extends BaseController { public function index() { $db = new \shared\Models\DBSetting(); return view('welcome_message'); } }
Autoload.php
#public $psr4 = [ APP_NAMESPACE => APPPATH, // For custom app namespace 'Config' => APPPATH . 'Config', 'shared\Models' => ROOTSOURCE . '/shared/Models' ];
Constants.php
#define('ROOTSOURCE', dirname(__DIR__,3));
DBSetting.php
#命名空間共享\模型; 使用 CodeIgniter\Model;
類別 DBSetting 擴充模型{
function __construct() { parent::__construct(); } public function save() { return true; }
}
我們也可以呼叫站點2中的模型。只需在Autoload.php中設定正確的路徑即可引用網站2中的模型。
注意: 如果網站 2 中的模型包含另一個模型或鏈接,如果我們從網站 1 調用,則 codeigniter 4 系統將讀取來自網站 1 的連結、模型。因此,請確保呼叫站點 2 中的普通模型。或者只是創建一個共享模型資料夾如上。