2016-08-25 3 views
0

ich geschaffen habe app/Http/helpers.phpLaravel 5.2 benutzerdefinierte Helfer nicht gefunden

if (!function_exists('getLocation')) { 
function getLocation($request) 
{ 
    return 'test'; 
} 

Ich habe Dateien hinzugefügt Abschnitt in composer.json automatisch geladen

"autoload": { 
    "classmap": [ 
     "database" 
    ], 
    "psr-4": { 
     "App\\": "app/" 
    }, 
    "files": [ 
     "app/Http/helpers.php" 
    ] 
}, 

Hier ist mein Controller:

namespace App\Http\Controllers; 

use App\Jobs\ChangeLocale; 
use App\Http\Requests; 
use Illuminate\Http\Request; 
use DB; 
use Log; 

class HomeController extends Controller 
{ 
    public function index(Request $request) 
    { 
      $data['location'] = getLocation($request); 

    } 

} 

Wenn ich die Funktion im Controller als getLocation ($ Anfrage) aufrufen; es heißt "Aufruf zu undefinierter Funktion App \ Http \ Controllers \ getLocation()"

Das funktioniert gut in meinem lokalen, aber nicht auf Remote-Server. Was fehlt mir auf meinem Remote-Server? Versuchte Composer-Installation und Composer-Dump-Autoload.

UPDATE: Die Helfer-Datei wird nicht in Anbieter aufgelistet bekommen/Komponist/autoload_files.php

+0

könnten Sie weitere Informationen wie Controller-Snippet vom Server veröffentlichen? von dem, was ich daraus gewonnen habe, ist es wahrscheinlich etwas dummes wie Sie vergessen haben, einige Dateien zu aktualisieren oder Namespaces zu importieren. – boroboris

+0

Controller hinzugefügt, aber es funktioniert in meinem lokalen und Fehler auf dem Server. –

+0

von meiner Erfahrung, wenn das passiert (Server-localhost Unterschied) ist es etwas, das Sie in diesen beiden Umgebungen unterschiedlich sind. Entweder fehlt die Helfer-Datei, verschiedene Composer-Dateien ... – boroboris

Antwort

0

On-Server, müssen Sie ausführen:

composer dumpautoload 

, weil es nicht auf vendor/autoload.php

gefunden
+0

Es ist schon fertig, wie Sie in meiner Frage sehen können –

+0

löschen Sie die 'autoload.php',' autoload_files.php' dann, geben Sie den Befehl erneut aus. es sieht aus wie Caching. –

1

Versuchen Sie so,

  1. erstellen Sie Helfer Verzeichnis in Seite das App-Verzeichnis.
  2. eine example.php-Datei im Verzeichnis Helfer erstellen
  3. eine alieas für diese Datei auf Config erstellen/app.php Datei

    Ex: 'Beispiel' => App \ Helpers \ Example :: Klasse,

der Code in der example.php folgt mögen,

<?php 

namespace App\Helpers; 

class Example 
{ 
    static function exampleMethod() 
    { 
     return "I am helper"; 
    } 
} 

wie im obigen Beispiel Helfer in Controller-Dateien verwenden folgt,

<?php 

namespace App\Http\Controllers; 
use App\Helpers\Example; 

class HomeController extends Controller 
{ 
    public function index(Request $request) 
    { 
      return Example::exampleMethod(); 

    } 

} 

dem obigen Beispiel Helfer in Klingen View-Dateien verwenden möchten folgt,

<div>{{ Example::exampleMethod()}}</div> 

Diese Sie Lösung erhalten helfen.

Verwandte Themen