Laravel erkennen, mobile/tablet und laden korrekten Ansichten
Habe ich gelesen, wie man hinzufügen, unterschiedliche Pfade oder namespaces für Ansichten haben, aber ich denke, das ist keine richtige Lösung für mich.
Was möchte ich tun, um eine Basis view Pfad für mobile Geräte und ein anderes für desktop-Geräte, also in der view-Controller brauche ich nicht, irgendeine änderung vorzunehmen.
Groß sein würde, um den Weg in die Routen-Datei und nicht berühren Sie eine beliebige view-controller. Irgendwelche Ideen? Vielleicht auch nur Config::festlegen der view-Pfad?
Vielen Dank im Voraus! 🙂
- das ist eine schlechte Idee. user-agent-sniffing ist immer fehlerhaft. besser ist, zwei subdomains,
www
undmobile
und lassen Sie Benutzer wählen, was Sie wollen. je nach subdomain, können Sie eine Umgebung erstellen und später nur durch retreving in der env, die Sie einstellen können, was Sie brauchen. - Ich bin mir nicht sicher.. Marketing-Nachricht: "besuchen Sie unsere website unter www.thing.com wenn Sie mit Ihrem Handy, in dem Fall gehen mobile.thing.com statt!" fühlt sich nicht richtig an für mich..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin auf der Suche auf das gleiche Problem hier, im Grunde wollen "bolt on" ein Verzeichnis von mobilen Ansichten ohne messing mit meinem Controller (wenn möglich).
Einem Ort, um dies zu tun kann die config in
app/config/views.php
:scheint zu funktionieren, wodurch Sie einen völlig anderen Verzeichnis aus zu arbeiten.
Ich werde weiter Experimentieren, vielleicht wird es einige überschneidungen zwischen der desktop-und mobile umfasst, aber wir werden sehen.
PS: Agent - ~ = Mobile_Detect
Für Sie Laravel 5 Benutzer in der Zukunft, die auf der Suche nach einer Möglichkeit, Geräte zu erkennen, die in der Ansicht; eine weitere option ist die Erstellung einer ServiceProvier - und verwenden Sie dann
View::share()
- der dann die Gerät-Erkennung$agent
verfügbar in all Ihrer Ansichten.Installieren Agent
Erstellen der service-provider
In config/app.php
in app/providers/AgentServiceProvider.php
Dann innen Ihre Ansichten
Könnte man erstellen Sie zwei Ordner
mobile
,desktop
innen Ihre view-Ordner. Die beiden Ordner enthalten die gleichen Ansichten (nur die Dateinamen).Dann in Ihrem controller können Sie die Ordner-Namen zu wechseln zwischen der desktop-und mobile Ansichten (oder jede andere, wenn Sie mehr).
Müssen Sie nur lösen die Anforderung Gerät über PHP. Sie können es mit diesem Projekt: http://mobiledetect.net/.
Jetzt Ihren controller sieht wie folgt aus:
Es ist nur eine gute Idee zur Umgestaltung der
($detect->isMobile() ? 'mobile' : 'desktop')
zu einer Helfer/statische Funktion. Oder registrieren Sie es als ein config-Element in einer route vor filter.View
mit einer Klasse und dann in den Konstruktor Griff der mobile - /desktop-switch. Dann brauchen Sie nur zu ändern, alleuse
s in deinem code.Wie vorgeschlagen, in einem Kommentar auf die akzeptierten Antworten (mobile Ansicht Weg nur auf mobile und fallback auf 'default' view):
Diese Weise können Sie nur überschreiben, was Sie brauchen. Dies kann nützlich für E-Mails und wenn Sie mehrere haben teilweise Ansichten, die die gleichen html-unabhängig von der Gerätekategorie.
Hinweis: Verwendung im controller ändert sich nicht.
Beispiel der Ansichten: