Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Продолжаю делать сайт. Дошёл до авторизации.
Контроллер:
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
## Модели
use App\Models\Forum\Forum; // Модель форума
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use Redirect;
class AuthController extends Controller{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
protected $redirectTo = '/';
public function __construct(){
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
}
protected function validator(array $data){
return Validator::make($data, [
'login_users' => 'required|min:4|max:60',
'mail_users' => 'required|email|min:4|max:255|unique:users',
'password' => 'required|min:6|confirmed:password_confirmation',
'password_confirmation' => 'required|min:6',
'iAgree' => 'accepted'
]);
}
## Страница авторизация
public function getLogin(){
return view('Auth.getLogin');
}
public function postLogin(Request $request){
$data = $request->all();
$dataSave = $request->flashExcept('password');
$v = $this->validator($data);
if($v->fails()){
// Если есть ошибки
return redirect()->back()->withErrors($v->errors())->withInput($dataSave);
}else{
}
}
}
Дизайн:
<div class="control-group {{($errors->first('login_users') ? 'error' : '')}}">
<label class="control-label" for="login_users">Логин:</label>
<div class="controls">
{{ Form::text('login_users', '', ['placeholder' => 'Введите ваш логин']) }}
<span class="help-inline">{{($errors->first('login_users') ? $errors->first('login_users') : '')}}</span>
</div>
</div>
<div class="control-group {{($errors->first('password') ? 'error' : '')}}">
<label class="control-label" for="password">Пароль:</label>
<div class="controls">
{{ Form::password('password', ['placeholder' => 'Введите ваш пароль']) }}
<span class="help-inline">{{($errors->first('password') ? $errors->first('password') : '')}}</span>
</div>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn btn-success">Войти</button>
</div>
</div>
Всё вроде работает, но вот к паролю пишется ошибка, мол пароль не совпадает. Что делать?
Не в сети
Ребзя, что, нет решений данной проблемы?
Не в сети
Ребзя, что, нет решений данной проблемы?
Дак вас же валидатор не пускает. Эти правила для регистрации подходят, а не для логина
А как тогда сделать для авторизации?
Не в сети
А как тогда сделать для авторизации?
К примеру так:
protected function validator(array $data){
return Validator::make($data, [
'login_users' => 'required|min:4|max:60',
'mail_users' => 'required|email|min:4|max:255|unique:users',
'password' => 'required|min:6|confirmed:password_confirmation',
'password_confirmation' => 'required|min:6',
'iAgree' => 'accepted'
]);
}
protected function validatorLogin(array $data){
return Validator::make($data, [
'login_users' => 'required',
'password' => 'required',
]);
}
## Страница авторизация
public function getLogin(){
return view('Auth.getLogin');
}
public function postLogin(Request $request){
$data = $request->all();
$dataSave = $request->flashExcept('password');
$v = $this->validatorLogin($data);
if($v->fails()){
// Если есть ошибки
return redirect()->back()->withErrors($v->errors())->withInput($dataSave);
}else{
}
}
Но лучше все переделать и валидацию в Request писать
Но лучше все переделать и валидацию в Request писать
Т.е. старым, дедовским способом?
Validate::make?
Я пробовал создавать:
protected function validatorLogin(array $data){
return Validator::make($data, [
'login_users' => 'required',
'password' => 'required',
]);
}
но каким-то магическим способом эта фигня не считывалась, хоть в авторизации я явно указывал её...
$v = $this->validatorLogin($data);
Не в сети
WebDev пишет:Но лучше все переделать и валидацию в Request писать
Т.е. старым, дедовским способом?
Validate::make?Я пробовал создавать:
protected function validatorLogin(array $data){ return Validator::make($data, [ 'login_users' => 'required', 'password' => 'required', ]); }
но каким-то магическим способом эта фигня не считывалась, хоть в авторизации я явно указывал её...
$v = $this->validatorLogin($data);
Каким дедовским? Дедовским это как сейчас, когда правила находятся с самом контролере.
Создаете Request и пишете там все правила, а в метод в контролере передаете Request.
https://laravel.com/docs/5.1/requests#a … he-request
Насчет this->validatorLogin, как она могла считываться когда такого метода у вас не было.
Всё, решено)
Пробовал и с validatorLogin (на форуме не опубликовал, т.к. потом попытался так сделать) - не работало. А сейчас всё ок)
Не в сети
Страницы 1