Rufen Sie an eine member-Funktion-Verbindung() on a non-object Fehler auf Laravel 5
Möchte ich zum speichern der Benutzer-Konfigurationsdaten der Datenbank und ich bin nach diesem thread im forum es http://forumsarchive.laravel.io/viewtopic.php?id=10406
aber wenn ich es umgesetzt laravel wirft einen Fehler.
Ich lief composer dump-autoload-aber es scheint nichts zu werden workign.Was ist hier das problem?
//filename: app/config/settings.php
use \App\Models\Setting
$list = array();
$format = function(&$list, $keys, $val) use(&$format) {
$keys ? $format($list[array_shift($keys)], $keys, $val) : $list = $val;
};
foreach(Setting::all() as $setting) {
$format($list, explode('.', $setting->token), $setting->content);
}
return $list;
Verwendung:
echo Config::get('settings.token'); //liefert den Wert von 'content'
Voller Fehler
Fatal error: Call to a member function connection() on a non-object in C:\wamp\www\iapp\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php on line 3137
Call Stack
# Time Memory Function Location
1 0.0017 247544 {main}( ) ..\index.php:0
2 0.0910 2848480 Illuminate\Foundation\Http\Kernel->handle( ) ..\index.php:58
3 0.0910 2848736 Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter( ) ..\Kernel.php:86
4 0.0917 2886304 Illuminate\Foundation\Http\Kernel->bootstrap( ) ..\Kernel.php:110
5 0.0917 2886472 Illuminate\Foundation\Application->bootstrapWith( ) ..\Kernel.php:215
6 0.0974 2994336 Illuminate\Foundation\Bootstrap\LoadConfiguration->bootstrap( ) ..\Application.php:194
7 0.0986 3025160 Illuminate\Foundation\Bootstrap\LoadConfiguration->loadConfigurationFiles( ) ..\LoadConfiguration.php:38
8 0.1407 3814624 require( 'C:\wamp\www\iapp\config\settings.php' ) ..\LoadConfiguration.php:56
9 0.1407 3814696 ConfigSetting::getSettings( ) ..\settings.php:28
10 0.1494 4488840 Illuminate\Database\Eloquent\Model::all( ) ..\settings.php:16
11 0.1496 4494520 Illuminate\Database\Eloquent\Model->newQuery( ) ..\Model.php:646
12 0.1496 4494616 Illuminate\Database\Eloquent\Model->newQueryWithoutScopes( ) ..\Model.php:1769
13 0.1496 4494688 Illuminate\Database\Eloquent\Model->newBaseQueryBuilder( ) ..\Model.php:1795
14 0.1496 4494736 Illuminate\Database\Eloquent\Model->getConnection( ) ..\Model.php:1852
15 0.1496 4494784 Illuminate\Database\Eloquent\Model::resolveConnection( )
Edit :
namespace App\Modelle;
verwenden Illuminate\Database\Eloquent\Model;
class Setting extends Modell {
}
- Was macht die App\Modelle\Setting-Modell Aussehen? Kann dieses Modell die Kommunikation mit der Datenbank? Können Sie fügen Sie den code in deiner Frage?
- Ich habe ihn Hinzugefügt.
- Es sieht aus wie Sie eine Datenbank-Verbindung problem. Kann dieses Modell die Kommunikation mit der Datenbank?
- Es funktioniert auf jedem anderen Orte, wie die normalen Routen und controller funktioniert aber nicht hier auf der config-Dateien.Es ist eine Frage, darüber, aber es ist nur die Hälfte beantwortet. stackoverflow.com/questions/29203532/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
gehen bootstrap/app.php
Nur kommentieren
Arbeiten mit Modellen in den settings-Dateien ist nicht der beste Weg, Sie zu verwenden.
Dein problem ist, dass Ihr Modell Abfrage gestartet, BEVOR Laravel begonnen, es ist Dienstleistungen. Das ist, warum, wenn Sie versuchen, machen Sie Ihre Anfrage, Modell nicht auflösen kann, es ist Verbindung, da die DB-service wurde noch nicht eingeleitet.
Wenn Sie möchten, dass dieses Zeug, erstellen Sie Ihre eigenen ServiceProvider, und update deine config gibt es, oder Tue es rechts in die
boot
Methode Ihrer bestehendenAppServiceProvider
.