Rufen Sie mehrere Anwendungsmodelle von einer gemeinsamen Site in einer einzigen Installation von Codeigniter 4 auf
<p>Wie rufe ich Modelle von anderen Standorten mit mehreren Anwendungen in einer einzigen Installation von Codeigniter 4 auf? </p>
<p>Die Ordnerstruktur sieht folgendermaßen aus: </p>
<pre class="brush:php;toolbar:false;">- WebsiteFolder
--Site1
---ca
---öffentlich
--- Tests
--- beschreibbar
(.env, spark und andere Dateien)
--Site2
---ca
--- öffentlich
--- Tests
--- beschreibbar
(.env, spark und andere Dateien)
-- system</pre>
<p>Hier ist mein Beispielcode: </p>
<p><strong>Am Standort 1</strong></p>
<hr />
<p><strong>Constants.php</strong>
Ich habe ein Stammverzeichnis definiert, um site2 zu finden. </p>
<pre class="brush:php;toolbar:false;">define('ROOTSOURCE', dirname(__DIR__,3) . 'site2');</pre>
<p>Dies gibt Folgendes zurück: </p>
<p><em>E:Projectwebsitesite2</em></p>
<p><strong>Autoload.php</strong></p>
<p>Ich habe PSR4 eingerichtet. </p>
<pre class="brush:php;toolbar:false;">public $psr4 = [
APP_NAMESPACE => APPPATH, // Für benutzerdefinierten App-Namespace
'Config' => APPPATH .
'SourceModels' => ROOTSOURCE . '/app/Models/'
];</pre>
<p>Dann führe ich den SPARK-Befehl aus: </p>
<pre class="brush:php;toolbar:false;">php spark namespaces</pre>
<p>und return</p>
<pre class="brush:php;toolbar:false;">+------------------+------------- --- ------------------ --- --------+--------+
|. Namensraum |. Pfad |
+----+----------------------------- ---- ---------------------------------------------- ---- ------+--------+
|. CodeIgniter |. E:ProjectDennisLiuwebsitesystem |
|. App |. E:ProjectDennisLiuwebsite1app |
|. Config |. E:ProjectDennisLiuwebsite1appConfig |
|. SourceModels |. E:ProjectDennisLiuwebsite2appModels |
+----+----------------------------- ---- ---------------------------------------------- ---- ------+--------+</pre>
<p>Suchen Sie dann den Namespace <strong>SourceModels</strong>. So weit, ist es gut.</p>
<p>Controller=> <strong>Home.php</strong></p>
<pre class="brush:php;toolbar:false;">namespace AppControllers;
Verwenden Sie SourceModels.
Die Klasse Home erweitert BaseController
{
öffentliche Funktion index()
{
$setting = new SourceModelsSetting();
return view('welcome_message');
}</pre>
<p>Wenn ich den Controller starte, erhalte ich Folgendes: </p>
<blockquote>
<p><strong>Klasse „SourceModelsSetting“ nicht gefunden</strong></p>
</blockquote>
<p>Nächster Schritt,</p>
<p><strong>Am Standort 2</strong></p>
<p>Ich habe das Modell <strong>Einstellungen</strong> im Site2-Modellordner. </p>
<p><strong>Hinweis: </strong></p>
<p>In Site 2 funktioniert alles einwandfrei. </p>
<p>Meine Frage ist die Fehlermeldung „Klasse <strong>'SourceModelsSetting' nicht gefunden“</strong>Was ist die richtige Einstellung zum Aufrufen von Site-2-Modellen in einer einzelnen App-Installation von Codeigniter 4? . < /p>
<p><strong>Hinweis: </strong>
Dies ist eine einzelne Installation von Codeigniter 4 für beide Websites. Ich habe den Systemordner freigegeben. </p>