찾다

 >  Q&A  >  본문

Codeigniter 4의 단일 설치로 공유 사이트에서 여러 응용 프로그램 모델 호출

<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>
P粉653045807P粉653045807501일 전533

모든 응답(2)나는 대답할 것이다

  • P粉493534105

    P粉4935341052023-09-01 20:04:17

    새 인스턴스를 생성하거나 model() 도우미 함수를 사용하여 클래스의 모델에 액세스할 수 있습니다.

    이런 예

    으아악

    회신하다
    0
  • P粉722409996

    P粉7224099962023-09-01 10:37:48

    문제를 발견했습니다. 이것이 올바른 방법입니다.

    폴더 구조

    으아악

    컨트롤러 - Home.php

    으아악

    Autoload.php

    으아악

    Constants.php

    으아악

    DBSetting.php

    네임스페이스 공유 모델; CodeIgniterModel을 사용하세요

    클래스 DBSetting 확장 모델{

    으아악

    }

    사이트 2에서 모델을 호출할 수도 있습니다. 사이트 2의 모델을 참조하려면 Autoload.php에서 올바른 경로를 설정하기만 하면 됩니다.

    참고: 사이트 2의 모델에 다른 모델이나 링크가 포함되어 있는 경우 사이트 1에서 호출하면 코드이그나이터 4 시스템은 사이트 1의 링크인 모델을 읽습니다. 따라서 사이트 2에서 일반 모델을 호출해야 합니다. 아니면 위와 같이 공유 모델 폴더를 생성하세요.

    회신하다
    0
  • 취소회신하다