Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [laravel] validacja formularzy
Forum PHP.pl > Forum > PHP > Frameworki
marcus753
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...
lukasz_os
W ustawieniach serwera wskazujesz na który katalog ma byc ustawiona domena. Teraz na pewno masz tam katalog "/" zamieniasz na "/public/ i po problemie.
marcus753
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ę ?
memory
Ź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
nrm
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 '' }}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.