![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Czy w Laravel'u można stworzyć tak routes abym nie musiał wypisywać wszystkich stron po kolei tylko aby były one pobierane z bazy danych? Przykładowo oprogramowanie ma 100 stron, to w takim przypadku musiałbym wypisać 100 razy: Route::get(….. Ten post edytował Randallmaster 28.07.2015, 11:52:45 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 55 Dołączył: 19.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kod Route::get('/{slug}', function($slug){
// 'slug' to indentyfikator strony w Twojej bazie }); Ten post edytował ctom 28.07.2015, 13:31:59 |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
jest gdzieś dokumentacja użytkowania {slug}, na pierwszy rzut oka za dużo nie ma, może mógłbyś coś polecić? na Laravel i Laracasts tylko na forum trochę opisują, w dokumentacji chyba nie ma
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ale co Ty chcesz opisywać?
Wrzucasz takiego route jako ostatni i kierujesz na jakiś kontroler. Tam wyszukujesz w bazie to co dostaniesz w parametrze i jak jest to wyświetlasz coś tam. |
|
|
![]() ![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
ok wykonałem takie coś:
no i jeżeli wpisze /pages -> to wyświetla pages a jeżeli wpisze /pages/param1/param2 -> to już strona wywala błąd. Czy parametry też można w bazie trzymać? wiem że mogę zrobić: /{slug}/{slug}/{slug}/{slug}/ no ale nie wiem ille zmiennych będę miał czy można zrobić to jakoś uniwersalnie? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
no pięknie o to mi właśnie chodziło (IMG:style_emoticons/default/exclamation.gif) !!! (IMG:style_emoticons/default/php.gif)
ostatnie pytanie?. prędzej miałem np. pod pages/index, listę stron z powodu zrobienia funkcji slug. wszystko mi zniknęło. Jak teraz z metody wyświetlić stronę? mam : Route::get('/{slug}', 'PagesController@validator')->where('slug', '.*'); i jak np. w validator wyświetlić stronę PagesController@edit z parametrem o id 1 Ten post edytował Randallmaster 11.08.2015, 19:19:30 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Musisz sobie parsować ręcznie adres otrzymany.
Robisz explode po / i np. if(is_numeric($index[1])) // show pages id = $index[1] |
|
|
![]() ![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
zrobiłem to (IMG:style_emoticons/default/smile.gif) tylko nie wiem jak wyświetlić to co miałem pod Route::get('pages/edit/{id}', 'PagesController@edit');
już wiem return $this->index(); np. no i jeszcze jedno?. W którym miejscu najlepiej wykonać sprawdzanie $slug? i przesyłać do danego widoku?bo w tym przypadku nie mam problemu wyświetlam widok z tego samego kontrolera robiąc to za pomocą $this->index(), a co w przypadku jeśli będę miał inny kontroler? trochę bezsensu będzie to abym definiował każdy kontroler osobno. Ten post edytował Randallmaster 11.08.2015, 20:52:01 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Generalnie ten route ze slug musi być na samym końcu pliku routes.php inaczej będzie ci przesłaniał wszystkie route po nim.
I nie za bardzo rozumiem o tych kontrolerach... |
|
|
![]() ![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
aktualnie pracuje jeszcze na cakephp i tam route nie trzeba było definiować. Jest tam (controller + action + parametrs) dzięki temu mogłem zbudować interfejs do zarządzania rolami uprawnieniami stron oraz użytkowników (wszystko w jednym miejscu). W beforeFilter wykonałem sprawdzanie czy strona np. pages/edit już istnieje i czy użytkownik ma do niej uprawnienia. Jeżeli tak to przepuszczało do widoku. Laravel 5 skonstruowany jest na route.php no i z tego co teraz widzę musiałbym dodawać tam każdą stronę no i mam możliwość definiowania uprawnień za pomocą middleware. w Cakephp mam w podstawie około 150 stron. To w laraver musiałbym te 150 stron wpisać w route. A chcę poprostu rozwiązać to za pomocą podobnego interface. I trzymać wszystko w bazie w jednym miejscu. Dlatego myślałem żeby w route zostawić tylko taki wpis:
A resztę sprawdzającą czyli czy użytkownik ma dostęp czy nie, sprawdzić w klasie i przekierowywać na konkretny widok. Ten post edytował Randallmaster 12.08.2015, 07:21:37 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ale co dla Ciebie oznacza "150 stron"
Czy jest to 150 treści czyli artykułów?? Bo jeśli tak, to tak; ten route wystarczy. Tak, w cake jest global route które mapuje /controler/action/params... Tutaj też możesz to zrobić coś na zasadzie. Tak na szybko sklecona podobna funkcjonalność z CakePHP
i kontroller:
Ten post edytował Pyton_000 12.08.2015, 08:13:40 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
150 stron to mój podstawowy uniwersalny szablon*, którego używam do projektów (tworzenie użytkowników, uprawnienia, słowniki itp.), oczywiście będzie tego więcej w zależności od projektu, tylko odwołałem się do 150 bo to moja w chwili obecnej podstawa. Biorę się za sprawdzenie twojego kodu (IMG:style_emoticons/default/wink.gif) Dzięki
wyskoczył mi błąd Wywołanie strony pages/index/
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zamień route na taki:
Tylko tutaj jeszcze nie zadziała Method Injection które jest w Laravel. Ten post edytował Pyton_000 12.08.2015, 10:48:39 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
a z pomocą App:make można to wykonać ?
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
return $this->app->call([app($controller), $action], explode('/', $params));
return call_user_func([app($controller), $action], explode('/', $params)); tak czy tak nie działa (IMG:style_emoticons/default/sad.gif) w PagesController mam metodę index BadMethodCallException in Controller.php line 283: Method [index] does not exist. |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 223 Pomógł: 27 Dołączył: 16.04.2008 Skąd: Bakutilu Ostrzeżenie: (0%) ![]() ![]() |
No przecież masz info o błędzie Method [index] does not exist.
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
napisałem powyżej że metoda istnieje. w PagesController a wywołuje stronę pages/index. więc powinno działać ;/
funkcja była jako private musiała być jako public i działa (IMG:style_emoticons/default/smile.gif) No i masz kolejny problem….. Jeżeli zrobię w taki sposóļ route to nie działa ten zapis (czyli sposobem powyżej):
Brakuje mi pomysłów, pomożecie ? (IMG:style_emoticons/default/sad.gif) |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Wiesz ze względu na to że Laravel ma speyficzny Routing to będzie masa problemów z tym związana przy zastosowaniu tej protezy z Cake.
Zastanów się czy nie możesz tego jakoś inaczej rozwiązać bez tego route. Ja jak będę miał chwilkę to zerknę ocb. |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
No ale w jaki sposób ty np. to robisz. Ręcznie wypisujesz po kolei każdą stronę w routes.php?
No i niekoniecznie mi zależy na tym by odwzorować cake w laravelu. Bardziej zależy mi by zrobić podobny interface, ze stronami, rolami, uprawnieniami itp. ponieważ to bardzo mi ułatwiło życie. |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tak, wpisuję sobie routy. Jest ich sporo ale dzięki temu widzę jakie mam odwołania w serwisie.
Obecnie mam wygenerowanych ok 177 wpisów (IMG:style_emoticons/default/wink.gif) PS. Mam nadzieję że używasz paczek do np. ról i innych tworów. |
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
@Randallmaster:
(IMG:http://i1.kym-cdn.com/photos/images/facebook/000/000/122/bush_doing_it_wrong_1.jpg) zapomnij o kejku, CI czy inny tworach z poprzedniej epoki. przykład pierwszy z brzegu: https://github.com/laravelio/laravel.io/blo...Http/routes.php https://github.com/CodepadME/laravel-tricks.../app/routes.php inne podejście: https://github.com/cachethq/Cachet/tree/1.1/app/Http/Routes Ten post edytował nrm 13.08.2015, 06:30:20 |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Generalnie do tej pory nie używałem paczek do ról bo nie potrzebowałem. Ale moje role działają prawie tak samo jak role do laravela (Zizaco/entrust), które właśnie sobie zaimplementowałem, z tym ze moje role obsługiwały jeszcze dodatkowo wizualizację menu (IMG:style_emoticons/default/smile.gif) czego mi tu brakuje, dokładne:
nazwa strony w zależności od roli, czy ma pokazywać w menu czy nie, kolejność wyświetlania, itp. Macie może jaką alternatywę w laravel'u? (IMG:style_emoticons/default/smile.gif) Ten post edytował Randallmaster 14.08.2015, 13:21:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 01:55 |