Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inny]Route w Laravel
damian1
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 23.04.2014

Ostrzeżenie: (0%)
-----


Witam
Chciałbym uzyskać taki efekt możliwie najprostszym sposobem:
../category/subcategory/id ze wszystkimi możliwymi kombinacjami np: .../id, ../subcategory, ../subcategory/id

Otóż w zasadzie napisałem kod, który działa. Trzy niewiadome były jeszcze znośne, ale potrzebuje jeszcze utworzyć podobny na ok. 5 niewiadomych (już sama myśl mnie przeraża), dlatego chciałem się spytać czy nie ma czasem jakiegoś prostszego sposobu? Mam przeczucie, że jednak nie do końca wykorzystuje możliwości frameworka (mój pierwszy projekt).

A jeśli chodzi o wady poniższego kodu to:
-każdorazowo muszę sprawdzać 'category_name', czyli po prostu warianty kategorii. Jest ich ok.7, więc jest jeszcze ok.
-sam kod to potworek (wkleiłem tylko pierwszy szkielet). W rzeczywistości w każdym if-ie rozważanych jest jeszcze kilka możliwości z każdorazowym połączeniem z bazą danych.

routes.php
  1. Route::get('home/{category?}/{subcategory?}/{id?}', array('as' => 'home/{category?}/{subcategory?}/{id?}', 'uses' => 'HomeController@test'))->where(array('id' => '[0-9]+'));



HomeController
  1. public function test($category= null, $subcategory = null, $id = null ) {
  2.  
  3. if ($category && $subcategory && $id) {
  4. return 'Kategoria: '.$category.'</br>'.'Subcategory: '.$subcategory.'</br>'.'Id: '.$id.'</br>';
  5. } elseif ($category && $subcategory) {
  6. if( $subcategory > 0 ) {$id = $subcategory; $subcategory= null;}
  7. if( $category != 'category_name') {$subcategory = $category; $category= null;}
  8. if( $category != 'category_name' && $id == null) {return Redirect::to('home');}
  9. return '2 opcja:<br>Kategoria: '.$category.'</br>'.'Subcategory: '.$subcategory.'</br>'.'Id: '.$id.'</br>';
  10. } elseif ($category) {
  11. if( $category > 0) {$id = $category; $category= null;}
  12. elseif( $category != 'category_name') {$subcategory = $category; $category= null;}
  13. return '3 opcja:<br>Kategoria: '.$category.'</br>'.'Subcategory: '.$subcategory.'</br>'.'Id: '.$id.'</br>';
  14. }
  15. else {
  16. return "4 opcja";
  17. }
  18. }



Do tego wszystkiego dochodzi parę drobnych filtracji przesyłanych za pomocą sesji, w zależności od tego co wybierze użytkownik w checkbox-ie.

Ten post edytował damian1 8.09.2014, 17:50:53
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 00:54