2016-08-09 41 views
7

Ich habe eine benutzerdefinierte Blade-Direktive, von der ich versuche, eine teilweise mit der Blade-Syntax @include() aufzunehmen. Das Problem ist, dass ich eine benutzerdefinierte Ansichten Namespace:Laravel Blade benutzerdefinierte Anweisung mit enthalten teilweise

\Blade::directive('name', function() { 
    $viewsNamespace = 'viewsNameSpace::'; 
    $formPartial = $viewsNamespace . 'partials._form'; 
    return "{{ @include({$formPartial}) }}"; 
}); 

Dies gibt den Fehler,

Class 'viewsNameSpace' not found

weil seine viewsNameSpace:: als Klasse zu interpretieren.

Dies gibt die Zeichenkette nur ohne es Parsen:

return "@include('{$formPartial}')"; 

Und dies ist kein Fehler zu werfen, aber es ist nicht die Teilbelastung:

return "{{ @include('{$formPartial}') }}"; 

Bitte beachten Sie, dass die teilweise funktioniert, wenn ich verwende in einer Vorlage wie folgt:

@include('viewsNameSpace::partials._form') 

aber ich kann es nicht von der Arbeit machen Richtlinie.

Jede Hilfe und Vorschläge wären willkommen! Vielen Dank!

Antwort

3

Dies ist, wie ich habe es funktioniert:

return "<?php echo view('$formPartial')->render(); ?>";

Wo $formPartial'viewsNameSpace::partials._form' ist.

0

Versuchen Sie folgendes:

return "<?php echo view('viewsNameSpace::partials._form')->render(); ?>";