Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте!
Помогите, пожалуйста:)
Laravel 5.2
Форма регистрации:
profile.blade.php
<form method="POST" action="{{ url('profile') }}">
....
</form>
{{ var_dump($errors->all()) }}
route:
Route::group(['middleware' => ['web']], function () {
Route::post('profile', ['uses' => 'Auth\AuthController@register']);
Route::get('profile', ['uses' => 'ProfileController@index']);
});
ProfileController:
public function index(){
return view('profile');
}
AuthController
protected function validator(array $data)
{
return Validator::make($data, [
...
]);
}
public function register(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
return redirect('profile')->withErrors($validator);
//return view('profile')->withErrors($validator);
}
Auth::guard($this->getGuard())->login($this->create($request->all()));
return redirect($this->redirectPath());
}
При возврате вьюхи вот таким способом:
return view('profile')->withErrors($validator);
ошибки ($errors->all()) отображаются.
А если написать
return redirect('profile')->withErrors($validator);
ошибки не передаются в представление.
Видел похожее сообщение на форуме. Решение было в добавлении строчек в Kernel.php. Сейчас у меня он вот такой:
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Session\Middleware\StartSession::class,
];
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
.....
Заранее огромное спасибо, тем, кто не прошел мимо! Очень бы хотелось разобраться.
что-то с сессией...
если сессия работает через файл - посмотри на права папок.
если через бд, то смотри есть ли таблицы.
Не в сети
у 5.2 сессия стартует даже для гостя - рой в сессиях
Не в сети
у 5.2 сессия стартует даже для гостя - рой в сессиях
Первое сообщение мое (зарегался только).
А можно конкретней? Никаких настроек не менял, стандартно все должно быть. Даже в register.blade.php, который идет с коробкой ошибки не отображаются. А роуты только одной строкой прописывал - Route::auth();
Не в сети
Покажи пожалуйста свой routes.php и какая именно версия Laravel (php artisan -v)?
Изменено AlexeyMezenin (15.06.2016 20:07:59)
Не в сети
не мучайте парня, у него всё с нуля, настроек не делал 51%.
короч, автор , тебе после голой установки необходимо пройтись по файлам в папке config и файл в корне env (без расширения)
если его нет, то установка была с косяками, либо руками. ставь по мануалу. тут на сайте вся инфа имеется в избытке.
как только убеждаешься, что всё пашет как надо, только тогда начинаешь править.
Не в сети
Покажи пожалуйста свой routes.php и какая именно версия Laravel (php artisan -v)?
Laravel Framework version 5.2.31
<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
Route::get('/', function () {
return view('main');
});
Route::get('contacts', function () {
return view('contacts');
});
Route::get('news', function () {
return view('news');
});
Route::get('help', function () {
return view('help');
});
Route::any('search/{sc?}/{gr?}', 'SearchController@index');
// О компании
Route::get('about', ['uses' => 'PageController@about']);
// Доставка и оплата
Route::get('delivery', ['uses' => 'PageController@delivery']);
// Публичная оферта
Route::get('offer', ['uses' => 'PageController@offer']);
Route::get('offerDownload', ['uses' => 'PageController@offerDownload']);
// добавление в корзину ajax. Auth::check() проверяется в контроллере
Route::post('addToBasket', 'AddToBasketController@index');
Route::post('delOrder', 'BasketController@delOrder');
// Выбор филиала
Route::post('selBranch', 'BranchController@selBranch');
Route::group(['middleware' => 'auth'], function () {
Route::get('balance', ['uses' => 'PageController@balance']);
Route::get('balance2', ['uses' => 'PageController@balance2']);
Route::get('bonus', ['uses' => 'PageController@bonus']);
Route::get('basket', ['uses' => 'BasketController@index']);
// Список заказов
Route::get('paids', ['uses' => 'PaidsController@index']);
Route::post('paids', ['uses' => 'PaidsController@changePaid']);
// Страница заказа
Route::get('paid/{id}', ['uses' => 'PaidsController@paidView']);
Route::post('addPaid', ['uses' => 'PaidsController@addPaid']);
Route::post('delOrderFromPaid', 'PaidsController@delOrder');
});
Route::group(['middleware' => ['web']], function () {
//Route::auth();
Route::post('profile', ['uses' => 'Auth\AuthController@register']);
Route::get('profile', ['uses' => 'ProfileController@index']);
});
Route::any('test', 'TestController@index');
Route::get('phpinfo', function () {
dd( phpinfo()); return;
});
Пока еще разбираюсь как оптимально нужно маршруты делать. Буду также благодарен любым подсказкам.
Не в сети
Роут груп миддлевар веб убрать надо если версия 5.2.31 и выше вроде. Там автоматом веб мидлевар прописывается
Не в сети
не мучайте парня, у него всё с нуля, настроек не делал 51%.
короч, автор , тебе после голой установки необходимо пройтись по файлам в папке config и файл в корне env (без расширения)
если его нет, то установка была с косяками, либо руками. ставь по мануалу. тут на сайте вся инфа имеется в избытке.как только убеждаешься, что всё пашет как надо, только тогда начинаешь править.
Ставил все по мануалу. Env конечно имеется. В проекте задействовано две бд. То, что есть проблема, только сейчас всплыло. И скорей всего это мои кривые руки, а не установка.
Не в сети
Роут груп миддлевар веб убрать надо если версия 5.2.31 и выше вроде. Там автоматом веб мидлевар прописывается
Пробовал без него - тоже самое.
Не в сети
В данной ситуции можно обойтись возвратом вьюхи. Но часто нужно сделать:
return Redirect::back()->withInput($request->all());
что тоже не работает. Помогите, пожалуйста!
Не в сети
https://laravel.ru/forum/viewtopic.php?pid=7737
Вот здесь описана такая же проблема.
В конфиге сессий SESSION_DRIVER=file.
К папке storage/framework/sessions доступ есть. В ней лежит много фалов сессий, которые создает движок.
Есть кто-нибудь, кто может помочь?
Не в сети
переустанови через laravel new ProjectName
Не в сети
Страницы 1