2016-04-07 5 views
0

Ich habe versucht $this->viewBuilder()->templatePath(), aber das gibt nur den Präfix und Controller-Namen. (Ex. Dashboard/Users)CakePHP 3.x, So erhalten Sie den vollständigen Pfad zu einer Vorlagendatei

Der vollständige Pfad ist eher wie /usr/local/var/www/mysite/vendor/vendorname/users/src/Template/Dashboard/Users

Ich habe ein paar andere Dinge ausprobiert wie Plugin::path($this->viewBuilder()->plugin()) Teil dieses Weges zu bekommen, aber ich habe noch jedes Stück Code zu finden, die zurückkehren die Einstellungen für den Ordner src und den Ordner Template.

Ich könnte sie hart als 'src' . DS . 'Template' codieren, aber hatte gehofft, ich würde etwas finden, das funktionieren würde, selbst wenn diese durch einige Konfigurationseinstellungen irgendwo geändert wurden. (Idealerweise wäre es nur ein viewBuilder->absoluteTemplatePath() oder etwas ähnliches.)

Antwort

1

Sie können mögliche Vorlagenpfade über App::path() abrufen.

Wenn Sie die Vorlage Pfad für Ihre Users Plugin abrufen möchten, dann könnten Sie

$templatesPath = current(\Cake\Core\App::path('Template', 'Users')); 
tun

Dies würde Ihnen so etwas wie

/usr/local/var/www/mysite/vendor/vendorname/users/src/Template/ 

Es sollte beachtet werden, dass diese Methode doesn‘ t gibt notwendigerweise nur einen einzigen Pfad zurück, tut dies aber für Plugin-Vorlagen.

Wenn Sie den Pfad zu einer tatsächlichen Datei benötigen, müssen Sie die übrigen Pfadsegmente selbst verketten.

Siehe auch

Verwandte Themen