Я использую laravel framework с тех пор, как через несколько недель, и я создаю сайт litle с ним.routing url rewrite with laravel 4
На данный момент, у меня есть:
- индексная страница, которая отображения формы Войти
- индекс/аутентификации страницу, проверки подлинности пользователя, но не отображает вид и перенаправлять пользователь либо на следующей странице или первой странице индекса
- страница, которая Dislay список пациента, если пользователь вошел в
Вот моя проблема. Моя аутентификация работает хорошо, но когда я перенаправляю пользователя на страницу списка пациентов, URL-адрес становится «index/auth».
Мой файл маршрут выглядит следующим образом:
Route::get('index', array('as'=>'index', 'uses'=>'[email protected]'));
Route::post('index/auth', array('uses'=>'[email protected]'));
Route::get('patients', array('as'=>'patients', 'uses'=>'[email protected]'));
Мои WUsersController выглядит следующим образом:
public function getIndex() {
return View::make('wusers.index')
->with('title', 'Instant Access');
}
public function postAuth() {
$rules = array(
'email'=>'required|email',
'password'=>'required|alphaNum|min:4'
);
$validator = Validator::make(Input::all(), $rules);
$user = WUserModel::where('WUS_EMAIL', '=', Input::get('email'))->first();
if ($validator->fails()) {
return Redirect::route('index')
->withErrors($validator);
}
if ($user->WUS_PASSWORD == md5(Input::get('password'))) {
Session::put('login', $user->WUS_EMAIL);
return Redirect::route('patients')
->with('title', 'Patient List');
}
return Redirect::route('index')
->with('logError', 'login ou mot de passe incorrect');
}
это "wusers.index" вид с формой:
@section('content')
<div id="loginPage" data-role="page">
<div data-role="header">
<h1>InstantAccess</h1>
</div>
<div data-role="content" style="text-align:center">
{{ HTML::image('img/logo_keosys.png') }}
{{ Form::open(array('url'=>'index/auth', 'method'=>'POST', 'id'=>'loginForm')) }}
<p>
{{ $errors->first('email') }}
{{ $errors->first('password') }}
</p>
<div data-role="fieldcontain">
<p>
{{ Form::label('email', 'Email:') }}<br />
{{ Form::text('email') }}
</p>
<p>
{{ Form::label('passorwd', 'Password:') }}<br />
{{ Form::password('password') }}
</p>
</div>
<p>{{ Form::submit('Sign in', array('name'=>'login', 'value'=>'Valider')) }}</p>
@if (Session::has('logError'))
<p style="color: red;">{{ Session::get('logError') }}</p>
@endif
{{ Form::close() }}
</div>
</div>
@ стоп
, и это мой PatientsController:
public function getPatientList() {
return View::make('patients.index', array(
'title'=>'Patients List',
'patients'=>DB::table('patient')
->join('study', 'patient.pat_id', '=', 'study.sty_pat_id')
->select('patient.pat_id', 'patient.pat_name', 'patient.pat_nip', 'patient.pat_birthdate', 'patient.pat_sex', 'study.sty_description', 'study.sty_datetime')
->orderBy('study.sty_datetime', 'desc')->take(10)->get())
);
}
Это было 2 недели я на эту проблему сейчас, я не могу продолжать работать на моем сайте, пока эта проблема решена.
Если у вас есть какие-либо вопросы, не стесняйтесь, и спасибо за вашу помощь.
Благодарим вас за эту оптимизацию, моя аутентификация все еще работает (и выглядит лучше). Я знаю, что это не очень хорошая практика, и я знаю, что есть метод Auth, который я могу использовать с laravel, но у меня есть конкретная база данных, которая используется в производстве и не соответствует именам таблиц драйверов laravel ... (я работая над этим) Итак, я изменил то, что вы предоставили, но URL-адрес остался неизменным до «index/auth» вместо «пациентов» после перенаправления пользователя. –
Из кода видно, что он должен работать, добавляя некоторую отладку, когда вы устанавливаете сеанс, когда пользователь выполнил вход в систему правильно. Если это работает и корректно выводится, добавьте некоторые действия в действие в контроллере ваших пациентов, чтобы узнать, будет ли это выводиться. – Varedis
Ну, я могу сказать, что это работает, если я использую правильную электронную почту и пароль, я перенаправляюсь на страницу пациентов, но URL-адрес «index/auth» вместо «пациентов». Но это работает. И, например, если я предоставляю неверную информацию, когда я вхожу в систему, я остаюсь на странице формы, но URL-адрес «index/auth» вместо «index». –