2017-12-21 3 views
1

Ich verwende den route-helper ({{ route('routename') }}) in meinen Blade-Vorlagendateien, um die Ergebnisse der Seite zu filtern und/oder zu sortieren.Abfrageparameter zu vorhandenen Parametern mit route-helper hinzufügen

Was ist der einfachste Weg, um einen Parameter an die vorherigen anzuhängen?

Als Beispiel:

Ich besuche die Seite /category1 und einige Produkte sehen. Jetzt verwende ich die Sortierung, die die URL zu /category1?sort_by=title&sort_order=asc

ändert Wenn ich jetzt eine andere Filterung verwende, möchte ich, dass der Parameter an den aktuellen angefügt wird. So zu /category1?sort_by=title&sort_order=asc&filter_by=year&year=2017 aber das Ergebnis ist nur /category1?filter_by=year&year=2017.

Ich schaffe die Urls mit der Route-Helfer wie:

$new_parameters = ['filter_by' => 'year', 'year' => $year]; 

route('category.show', array_merge([$category], request()->all(), $new_parameters]); 

verwenden, um alle vorherigen Parameter und neue hinzufügen:

route('category.show', [$category, 'sort_by' => 'title', 'sort_order' => 'asc']) 
route('category.show', [$category, 'filter_by' => 'year', 'year' => $year]) 

Antwort

1

Sie wahrscheinlich so etwas wie verwenden könnte.

Offensichtlich möchten Sie vielleicht nur einige von ihnen verwenden, dann statt:

request()->all() 

Sie verwenden können:

request()->only('sort_by', 'sort_order', 'filter_by', 'year') 
+0

Ja, das ist, wie ich es jetzt gelöst. Danke für den Tipp. Ich hatte gehofft, Laravel hätte einen noch einfacheren Weg, dies zu tun. Solange niemand mir dies zeigen kann, das ist die akzeptierte Antwort. ;) – Sebastian

Verwandte Themen