Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [laravel] validacja formularzy
marcus753
post 28.07.2014, 11:16:06
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 3
Dołączył: 8.06.2009
Skąd: Kraków

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


Mam sobie formularz:

  1. <form action="{{ url('users') }}" method="POST">
  2. <table>
  3. <tr><td><label for="login">user:</label></td><td><input type="text" name="login" value=""></td></tr>
  4. <tr><td><label for="password">password:</label></td><td><input type="password" name ="password"></td></tr>
  5. <tr><td><label for="email">email:</label></td><td><input type="text" name ="email"></td></tr>
  6. <tr><td colspan="2"><input type="submit" value="add"></td></tr>
  7. </table>
  8. {{Form::token()}}
  9. </form>


oraz jedno przekierownie typu controller w pliku route:

  1. Route::controller('/users','UsersController');


Chciałbym aby podczas wykrycia błędów przy walidacji formularz zachował to co już użytkownik tam wpiszę, w internecie można znaleźć konstrukcje z wykorzystaniem input::old która wymaga zastosowania ->withInput w controlerze tyle że one nie działają z przekierowaniem typu controller. Wiecie może jak coś takiego zrobić ?

obecnie wymyśliłem sobie sposób aby do widoku w kontrolerze przekazywać dane input:

  1.  
  2. public function postIndex(){
  3. $data = Input::all();
  4. //walidacja formularza
  5. return View::make('users/create')->with('user',$data)->withErrors($validator);
  6. }


a w widoku wyświetlać je tak:

  1. {{ isset ($user) ? $user['login']:''}}


ale jest to rozwiązanie dosyć koślawe. Które bardzo mi się nie podoba ;/

##############################################################################

Dla potomnych, w kontrolerze zamiast ładować widok wystarczy ustawić przekierowanie typu:

  1. return Redirect::back()->with_errors($validation)->with_input();


korzystając z klasy Redirect możemy skorzystać z metody with_input() co z kolei daje nam możliwość wywołania w widoku metody:

  1. Input::old('field_name')


która to nie zwracam nam błedu jeśli dany input jest pusty wink.gif

Mam jeszcze jedno pytanie co do folderu public, jak konfigurujecie serwer tak aby otwierany był folder public a nie katalog wyżej. Dzięki za pomoc wink.gif
chodzi o to by zmienić mojadomena.pl/public/ na mojadomena.pl Prosta rzecz a kurcze mam z nią mały problem...

Ten post edytował marcus753 28.07.2014, 11:16:45


--------------------
Cokolwiek zostanie upuszczone na uklad elektroniczny, spadnie zawsze tam gdzie wyrzadzi najwiecej szkody.
Go to the top of the page
+Quote Post
lukasz_os
post 28.07.2014, 11:24:56
Post #2





Grupa: Zarejestrowani
Postów: 203
Pomógł: 55
Dołączył: 23.11.2008
Skąd: UKF

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


W ustawieniach serwera wskazujesz na który katalog ma byc ustawiona domena. Teraz na pewno masz tam katalog "/" zamieniasz na "/public/ i po problemie.

Ten post edytował lukasz_os 28.07.2014, 11:25:36


--------------------
Pomagam jeśli mam czas oraz jak się na tym znam :D
Go to the top of the page
+Quote Post
marcus753
post 28.07.2014, 11:55:55
Post #3





Grupa: Zarejestrowani
Postów: 281
Pomógł: 3
Dołączył: 8.06.2009
Skąd: Kraków

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


OK dzięki myślałem że jeszcze muszę coś w ustawieniach stronki grzebać albo dodawać jakieś pliki .htaccess

Mam jeszcze jedno pytanie odnośnie logowania - chciałbym zrobić 2 logowania jedno do panelu admina drugie do strony oba będą korzystały z innych tabel w bazie danych, czy można tutaj w jakiś sposób wykorzystać wbudowaną funkcję ?


--------------------
Cokolwiek zostanie upuszczone na uklad elektroniczny, spadnie zawsze tam gdzie wyrzadzi najwiecej szkody.
Go to the top of the page
+Quote Post
memory
post 28.07.2014, 12:06:55
Post #4





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


Źle podchodzisz do tematu. Don't Repeat Yourself - Lepiej utworzyć ACL (np https://github.com/Zizaco/entrust) i w zależności od uprawnień, ustawiasz dostęp do poszczególnych stron

Ten post edytował memory 28.07.2014, 12:07:29
Go to the top of the page
+Quote Post
nrm
post 28.07.2014, 12:35:48
Post #5





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

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


Cytat(marcus753 @ 28.07.2014, 10:16:06 ) *
  1. {{ isset ($user) ? $user['login']:''}}


Powyższe też możesz zamienić na coś mniej... koślawego wink.gif

  1. {{ $user['login'] or '' }}


--------------------
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 18.04.2024 - 12:05