Rumah > Soal Jawab > teks badan
P粉4935341052023-09-01 20:04:17
Anda boleh mengakses model dalam kelas dengan mencipta tika baharu atau menggunakan fungsi pembantu model().
Contoh seperti ini
// 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
Saya jumpa masalahnya. Ini adalah cara yang betul untuk melakukan ini.
Struktur folder
- 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
Pengawal - 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
Model perkongsian ruang nama; Gunakan CodeIgniterModel
Model sambungan Penetapan DBSeting Kelas{
function __construct() { parent::__construct(); } public function save() { return true; }
}
Kami juga boleh memanggil model di tapak 2. Hanya tetapkan laluan yang betul dalam Autoload.php untuk merujuk model di tapak 2.
Nota: Jika model dalam tapak 2 mengandungi model atau pautan lain, jika kami memanggil dari tapak 1, sistem pencucuh kod 4 akan membaca pautan, model dari tapak 1. Jadi pastikan untuk memanggil model biasa di tapak 2. Atau buat sahaja folder model kongsi seperti di atas.