Codeigniter 4의 단일 설치로 공유 사이트에서 여러 응용 프로그램 모델 호출
P粉653045807
2023-08-31 22:44:08
<p>Codeigniter 4를 한 번 설치하여 다른 다중 응용 프로그램 사이트의 모델을 호출하는 방법은 무엇입니까? </p>
<p>폴더 구조는 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;">- 웹사이트 폴더
--사이트1
--- 앱
--- 공공의
--- 테스트
--- 쓰기 가능
(.env, 스파크 및 기타 파일)
--사이트2
--- 앱
---공공의
--- 테스트
--- 쓰기 가능
(.env, 스파크 및 기타 파일)
-- 시스템</pre>
<p>제 샘플 코드는 다음과 같습니다. </p>
<p><strong>사이트 1</strong></p>
<시간 />
<p><strong>Constants.php</strong>
site2를 찾기 위해 루트 디렉터리를 정의했습니다. </p>
<pre class="brush:php;toolbar:false;">define('ROOTSOURCE', dirname(__DIR__,3) . 'site2');</pre>
<p>이 결과는 다음과 같습니다. </p>
<p><em>E:Projectwebsitesite2</em></p>
<p><strong>Autoload.php</strong></p>
<p>PSR4를 설정했습니다. </p>
<pre class="brush:php;toolbar:false;">공개 $psr4 = [
APP_NAMESPACE => APPPATH, // 맞춤형 앱 네임스페이스용
'구성' => '구성',
'SourceModels' => ROOTSOURCE '/app/Models/'
];</pre>
<p>그런 다음 SPARK 명령을 실행합니다: </p>
<pre class="brush:php;toolbar:false;">php 스파크 네임스페이스</pre>
<p>그리고 반품</p>
<pre class="brush:php;toolbar:false;">+------+--------------- --- ---------------------------------- --- ----------+---------+
| 네임스페이스 |
+------+---------------- ---- -------------------- ---- ------+---------+
CodeIgniter | E:ProjectDennisLiu웹사이트시스템 |
앱 | E:ProjectDennisLiuwebsitesite1app |
구성 | E:ProjectDennisLiuwebsitesite1app구성 |
소스 모델 | E:ProjectDennisLiuwebsitesite2appModels |
+------+------------------ ---- -------------------- ---- -----+---------+</pre>
<p>그런 다음 네임스페이스 <strong>SourceModels</strong>를 찾으세요. 여태까지는 그런대로 잘됐다.</p>
<p>컨트롤러=> <strong>Home.php</strong></p>
<pre class="brush:php;toolbar:false;">네임스페이스 AppControllers;
SourceModel을 사용합니다.
클래스 홈은 BaseController를 확장합니다.
{
공개 함수 인덱스()
{
$setting = 새로운 SourceModelsSetting();
return view('welcome_message');
}</pre>
<p>컨트롤러를 실행하면 다음과 같은 결과가 나타납니다. </p>
<인용문>
<p><strong>'SourceModelsSetting' 클래스를 찾을 수 없습니다</strong></p>
</인용문>
<p>다음 단계</p>
<p><strong>사이트 2</strong></p>
<p>Site2 모델 폴더에 <strong>설정</strong> 모델이 있습니다. </p>
<p><strong>참고: </strong></p>
<p>사이트 2에서는 모든 것이 잘 작동합니다. </p>
<p>제 질문은 "클래스 <strong>'SourceModelsSetting'을 찾을 수 없습니다"라는 오류입니다.</strong>codeigniter 4의 단일 앱 설치에서 사이트 2 모델을 호출하기 위한 올바른 설정은 무엇입니까? . <
<p><strong>참고: </strong>
이는 두 웹사이트 모두에 대한 codeigniter 4의 단일 설치입니다. 시스템 폴더를 공유했습니다. </p>
새 인스턴스를 생성하거나 model() 도우미 함수를 사용하여 클래스의 모델에 액세스할 수 있습니다.
이런 예
으아악문제를 발견했습니다. 이것이 올바른 방법입니다.
폴더 구조
으아악컨트롤러 - Home.php
으아악Autoload.php
으아악Constants.php
으아악DBSetting.php
네임스페이스 공유 모델; CodeIgniterModel을 사용하세요
클래스 DBSetting 확장 모델{
으아악}
사이트 2에서 모델을 호출할 수도 있습니다. 사이트 2의 모델을 참조하려면 Autoload.php에서 올바른 경로를 설정하기만 하면 됩니다.
참고: 사이트 2의 모델에 다른 모델이나 링크가 포함되어 있는 경우 사이트 1에서 호출하면 코드이그나이터 4 시스템은 사이트 1의 링크인 모델을 읽습니다. 따라서 사이트 2에서 일반 모델을 호출해야 합니다. 아니면 위와 같이 공유 모델 폴더를 생성하세요.