Ich habe gelesen, wie man verschiedene Pfade oder Namespaces für Ansichten hinzufügt, aber ich denke, das ist keine richtige Lösung für mich. Was ich tun möchte, ist es, einen Basispfad für die Ansicht für mobile Geräte und einen anderen für Desktop-Geräte festzulegen, so dass ich in den View-Controllern keine Änderungen vornehmen muss.
Das wäre toll, um den Pfad in der routes-Datei zu setzen und keinen View-Controller zu berühren. Irgendwelche Ideen dafür? Vielleicht nur Config :: den Ansichtspfad festlegen?
Vielen Dank im Voraus! :)
Ich sehe mir das gleiche Problem an, im Grunde will ich ein Verzeichnis von mobilen Ansichten "anschrauben", ohne meine Controller zu stören (wenn möglich).
Ein Platz, um dies zu tun, ist die Konfiguration in app/config/views.php
:
scheint zu funktionieren und gibt Ihnen ein völlig anderes Verzeichnis zum Arbeiten.
Ich werde weiter experimentieren, da es vielleicht einige Überschneidungen zwischen den Desktop- und Mobilgeräten geben wird, aber wir werden sehen.
PS: Agent ~ = Mobile_Detect
Für Sie Laravel 5-Benutzer in der Zukunft, die nach einer Möglichkeit suchen, Geräte in der Ansicht zu erkennen; Eine andere Möglichkeit besteht darin, einen ServiceProvider zu erstellen - und dann View::share()
zu verwenden -, der dann die Geräteerkennung $agent
in all Ihren Ansichten verfügbar macht.
Sie könnten zwei Ordner mobile
, desktop
in Ihrem Ansichtsordner erstellen. Die zwei Ordner enthalten die gleichen Ansichten (nur die Dateinamen).
Dann können Sie innerhalb des Controllers die Ordnernamen verwenden, um zwischen den Desktop- und mobilen Ansichten (oder anderen, wenn Sie mehr hinzufügen) zu wechseln.
Sie müssen das Gerät der Anfrage nur über PHP auflösen. Du kannst es mit diesem Projekt machen: Ссылка .
Jetzt sieht Ihr Controller wie folgt aus:
%Vor% Es ist natürlich eine gute Idee, den ($detect->isMobile() ? 'mobile' : 'desktop')
zu einer Helfer / statischen Funktion umzuformen. Oder registrieren Sie es als Konfigurationselement in einem Vor-Route-Filter.
Wie in einem Kommentar zur akzeptierten Antwort vorgeschlagen (Mobiler Ansichtspfad nur auf Mobilgerät und Fallback auf 'Standardansicht'):
%Vor%Auf diese Weise überschreiben Sie nur, was Sie brauchen. Dies kann nützlich sein für E-Mails und wenn Sie mehrere Teilansichten haben, die unabhängig von der Gerätekategorie das gleiche HTML haben.
Hinweis: Die Verwendung im Controller ändert sich nicht.
Beispielansichten:
%Vor%