Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 15.06.2016 17:15:10

Максим

return(...)->withErrors

Здравствуйте! 
Помогите, пожалуйста:)

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,

        ],
      .....

Заранее огромное спасибо, тем, кто не прошел мимо! Очень бы хотелось разобраться.

#2 15.06.2016 17:39:14

Re: return(...)->withErrors

что-то с сессией...
если сессия работает через файл - посмотри на права папок.
если через бд, то смотри есть ли таблицы.

Не в сети

#3 15.06.2016 17:40:13

Re: return(...)->withErrors

у 5.2 сессия стартует даже для гостя - рой в сессиях

Не в сети

#4 15.06.2016 17:55:31

Re: return(...)->withErrors

hzone пишет:

у 5.2 сессия стартует даже для гостя - рой в сессиях

Первое сообщение мое (зарегался только).
А можно конкретней? Никаких настроек не менял, стандартно все должно быть. Даже в register.blade.php, который идет с коробкой ошибки не отображаются. А роуты только одной строкой прописывал - Route::auth();

Не в сети

#5 15.06.2016 20:07:13

Re: return(...)->withErrors

Покажи пожалуйста свой routes.php и какая именно версия Laravel (php artisan -v)?

Изменено AlexeyMezenin (15.06.2016 20:07:59)

Не в сети

#6 15.06.2016 21:12:57

Re: return(...)->withErrors

не мучайте парня, у него всё с нуля, настроек не делал 51%.

короч, автор smile, тебе после голой установки необходимо пройтись по файлам в папке config и файл в корне env (без расширения)
если его нет, то установка была с косяками, либо руками. ставь по мануалу. тут на сайте вся инфа имеется в избытке.

как только убеждаешься, что всё пашет как надо, только тогда начинаешь править.

Не в сети

#7 15.06.2016 22:03:26

Re: return(...)->withErrors

AlexeyMezenin пишет:

Покажи пожалуйста свой 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;
});

Пока еще разбираюсь как оптимально нужно маршруты делать. Буду также благодарен любым подсказкам.

Не в сети

#8 15.06.2016 22:04:29

Re: return(...)->withErrors

Роут груп миддлевар веб убрать надо если версия 5.2.31 и выше вроде. Там автоматом веб мидлевар прописывается

Не в сети

#9 15.06.2016 22:05:11

Re: return(...)->withErrors

hzone пишет:

не мучайте парня, у него всё с нуля, настроек не делал 51%.

короч, автор smile, тебе после голой установки необходимо пройтись по файлам в папке config и файл в корне env (без расширения)
если его нет, то установка была с косяками, либо руками. ставь по мануалу. тут на сайте вся инфа имеется в избытке.

как только убеждаешься, что всё пашет как надо, только тогда начинаешь править.

Ставил все по мануалу. Env конечно имеется. В проекте задействовано две бд. То, что есть проблема, только сейчас всплыло. И скорей всего это мои кривые руки, а не установка.

Не в сети

#10 15.06.2016 22:06:52

Re: return(...)->withErrors

BMTH пишет:

Роут груп миддлевар веб убрать надо если версия 5.2.31 и выше вроде. Там автоматом веб мидлевар прописывается

Пробовал без него - тоже самое.

Не в сети

#11 16.06.2016 16:57:52

Re: return(...)->withErrors

В данной ситуции можно обойтись возвратом вьюхи. Но часто нужно сделать:

return Redirect::back()->withInput($request->all());

что тоже не работает. Помогите, пожалуйста!

Не в сети

#12 16.06.2016 17:27:36

Re: return(...)->withErrors

https://laravel.ru/forum/viewtopic.php?pid=7737
Вот здесь описана такая же проблема.
В конфиге сессий SESSION_DRIVER=file.
К папке storage/framework/sessions доступ есть. В ней лежит много фалов сессий, которые создает движок.

Есть кто-нибудь, кто может помочь?

Не в сети

#13 16.06.2016 21:12:40

Re: return(...)->withErrors

переустанови через laravel new ProjectName

Не в сети

Подвал раздела