2017-04-14 5 views
0

Ich habe vor kurzem begonnen, Laravel zu verwenden, also bin ich ein Anfänger, und gerade arbeite ich an einem kleinen Projekt, das erfordert, dass ich shortcodes (wie diejenigen in Wordpress). Also suchte ich für ein wenig und fand dieses Paket:Laravel webwizo shortcodes Paket Shortcodes Klasse nicht gefunden

https://packagist.org/packages/webwizo/laravel-shortcodes

ich die Installation und Nutzung den Weg lief es geschrieben ist, aber ich bekomme die Fehlermeldung: Klasse ‚App \ Providers \ Shortcode‘ nicht in die gefunden Provider muss ich mit dem Befehl laravel make: provider machen, wie in den Anweisungen des Pakets angegeben, unten ist meine genaue Verwendung und Installationscode.

  1. hat dieses Bild auf das Array-Anbieter:

    /* 
    * shortcodes providers 
    */ 
    Webwizo\Shortcodes\ShortcodesServiceProvider::class, 
    App\Providers\ShortcodesServiceProvider::class, 
    
  2. hinzugefügt, dies zu Aliase:

    'Shortcode' => Webwizo \ Short \ Fassaden \ Short :: Klasse,

  3. das ist der Inhalt meines ShortcodesServiceProvider in App/Provider:

    Namespace App \ Anbieter;

    verwenden Illuminate \ Support \ ServiceProvider; Verwenden Sie App \ Shortcodes \ JobsForm;

    Klasse ShortcodesServiceProvider erweitert Serviceprovider { /**

    • Bootstrap die Anwendungsdienste. *
    • @return Leere */ public function boot() { // }

    /**

    • die Anwendungsdienste registrieren. *
    • @return Leere */ public function register() { Short :: register ('Jobs', JobsForm :: Klasse); } }

Ich benutze Laravel 5.4, so dass ein Problem sein könnte.

Die Sache ist die Klasse offensichtlich existiert, es gibt die Shortcodes Klasse nicht gefunden Fehler, weil ich denke, es sucht in der app/providers/ShortcodesServiceProvider-Datei, und offensichtlich ist es nicht da ist es in der Vendor-Datei.

Gibt es etwas, das ich vermisse, habe ich überprüft und doppelt überprüft, ich kann nicht scheinen, dass dieses Ding zur Arbeit kommt.

Es sollte funktionieren, wenn man bedenkt, dass es einen Alias ​​definiert hat, richtig?

Ich benutzte es in der Ansicht wie folgt aus:

return view('quarx-frontend::pages.' . $page->template)->with('page', $page)->withShortcodes(); 

Vielen Dank für die Zeit nehmen, diese jede Hilfe zu lesen, würde sehr geschätzt werden.

Wenn Sie weitere Informationen benötigen, werde ich froh sein, es zu liefern.

p.s. Entschuldigung für schlechtes Englisch, nicht ein Muttersprachler: P

Antwort

1

Es sucht nach Shortcode im App\Providers; Namespace und nicht im Stammnamespace, wo die Fassade definiert ist.

Sie können dieses Problem beheben in App\Providers\ShortcodesServiceProvider.php von beiden tun:

<?php 

namespace App\Providers; 

use Illuminate\Support\ServiceProvider; 
use App\Shortcodes\JobsForm; 
use Shortcode; 

class ShortcodesServiceProvider extends ServiceProvider 
{ 

Oder \Shortcode

/** 
* Register the application services. 
* 
* @return void 
*/ 
public function register() 
{ 
    \Shortcode::register('jobs', JobsForm::class); 
} 

verwenden würde ich die erste Option empfehlen.

+0

Danke, ich habe die erste Option ausprobiert und es funktioniert, ich denke, sie sollten angeben, um die Verwendung shortcode Zeile im Anbieter zu setzen, kann es für einige Benutzer verwirrend sein, für mich zumindest war es. Danke für Ihre Hilfe – PhpJunior

Verwandte Themen