2016-08-03 25 views
1

Ich habe Waavi-Paket für die Manipulation von Übersetzungsdateien installiert. Ich muss Methoden von seinem Controller zu meinem verwenden? Ich habe versucht, so etwas wie dieses, aber es funktioniert nichtSo verwenden Sie Methoden von einem Controller in einem anderen

LanguageRepository::findByLocale(1); 

Dies ist, was ich in Anfang meiner Controller

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 

use Waavi\Translation\Repositories\LanguageRepository; 

use Waavi\Translation\Repositories\TranslationRepository; 

use Illuminate\Foundation\Application; 
+0

Verwenden Sie die richtigen Namespaces? Diese Methode ist übrigens nicht statisch – Cranio

+0

Ich habe den Code hinzugefügt, den ich am Anfang meines Controllers verwende. – OunknownO

+0

Erweitern Sie den Controller, den Sie verwenden möchten, und rufen Sie die Methode dort auf. – TheFallen

Antwort

1

Wenn Sie erfolgreich in here getan haben alle Schritte bin, sollten Sie sein Lage LanguageRepository zuzugreifen depedency Injektion unter Verwendung ("Es wird empfohlen, dass Sie diese Klasse durch Dependency Injection instanziiert")

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Requests; 
use Waavi\Translation\Repositories\LanguageRepository; 

class DefaultController extends Controller 
{ 
    private $language_repository; 

    function __construct(LanguageRepository $language_repository) 
    { 
     $this->language_repository = $language_repository; 
    } 

    public function index() 
    { 
     dd($this->language_repository->findByLocale("en")); 
    } 
} 

Hinweis: Sie müssen die Passwortstring-Zeichenfolge anstelle der ID an die findByLocale-Methode übergeben. siehe line 97