Laravel по-русски

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

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

#1 Re: Laravel 5.x » Laravel 5.5. файл .htaccess » 03.02.2018 14:18:25

Нет, почему-то не отрабатывает и все по прежнему.

Я дам немного конкретики, вохможно это поможет.

Еть сервер на котором я размещаю проекты его имя отсается в общем URL, т.образом, например, изначально (после того,как я зали проект) проект был доступен как:

server.zzz.com.us/landing.site.loc/public/

Мне было рекомендовано установить в корневую папку моего хостинга (не проекта, а хостинга) дополнительный файл .htaccess, который должен был был удалить / public /, чтобы выглядело вот так :

http://server.zzz.com.us/landing.site.loc

,что мне и нужно! Вот содержимое этого файла:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?server\.zzz\.com\.us$ [NC]
RewriteCond %{REQUEST_FILENAME} !/public/
RewriteRule ^(.*)$ /landing.site.loc/public/$1 [L]

Но. Теперь мой проект доступен по адресу

http://server.zzz.com.us

А мне нужно, как уже говорил, чтобы обращение к проекту было именно

http://server.zzz.com.us/landing.site.loc

Т.е. как мзменить вышеупомянутый .htaccess, чтобы обращаться к проекту

http://server.zzz.com.us/landing.site.loc

#3 Re: Laravel 5.x » Laravel 5.5. файл .htaccess » 31.01.2018 16:17:03

RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]

Вместо каких именно строк в моем файле?  Не могли бы помочь.
Я нечно подобное пробовал, но наверное не там прописал/

#4 Laravel 5.x » Laravel 5.5. файл .htaccess » 31.01.2018 16:03:19

littus
Ответов: 9

Laravel-5.5
PHP  7.0.27
Linux carrot x86_64
Server: nginx

Всем привет!
Можно ли в .htaccess файле настроить так,чтобы при обращении к проекту не было [public] в URL.
Точка входа в Laravel не корневой каталог, а папка [public]  и сейчас у меня проект который на реальном сервере идет как

http://my_domen_name/public

Я же хочу,чтобы сайт работал по:

http://my_domen_nam

Но нужно,чтобы не просто вырезалось `public`, а именно обращение шло правильно/
На локальной машине, когда я разрабатываю проект, я имею доступ к конфигурации сервера и на локалке, в конфигурационном файле прописал, где указываю, что корень проекта это [public] -  DocumentRoot "my_domen_name/public".
На хостинге я такой возможноти не имею, поэтому можно ли так сделать только лишь через свой .htaccess и как должно это быть?

Сейчас мой .htaccess выглядит так:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

и напомню, что обращаюсь я сейчас к проекту как   - http://my_domen_name/public , поскольку http://my_domen_name - будет естественно ошибка "403".

#5 Re: Laravel 5.x » Нет данных $_POST » 30.01.2018 17:26:39

[’middleware’=>[’web’] - убрал/ Ситуация не изменилась!Не возвращай, иначе будут проблемы с сессиями.Форма выглядит нормально. А проверял как она рендерится? Не ломается ничего?

Почему проблемы с сессиями? Вроде делал по документации и примерам, там для фронтенд части сайта была определена группа для всех роутов и посредником назначен web   - [’middleware’=>[’web’]
В общем-то на локалке стоит с ним и все работает, и в сессию тоже пишет и флэш-сообщения с сессии тоже вытягивает, - одним словом все ном/
Но то на локалке/

Да, отрендеринаая форма выглядит так как нужно - все норм/
Тут что-то другое, я не знаю/
Возможно или с .htaccess  связанное, т/к/ у себя на виртуальном сервере на локалке я поставил, что корень моего сайта (т/входа) - это [public], здесь же на хосте, я не могу так сделать,- у меня нет возможности такой, поэтому к своему приложению я обращаюсь сейчас как
domen/public/
Но, на бекенде то все работает/

#6 Re: Laravel 5.x » Нет данных $_POST » 30.01.2018 16:40:11

Убери [’middleware’=>[’web’] из файла маршрутов и покажи пожалуйста полностью форму.

<!-- Contact Section -->
<div id="<?php echo ( isset($pages) ) ? $pages[4]['alias'] : '';?>" class="section contact-section">
    <div class="container-fluid">
        <div class="col-lg-4 col-md-4">
            <?php echo ( isset($pages) ) ? $pages[4]['text'] : '';?>
        </div>
        <div class="col-lg-8 col-md-8">
            @if( count($errors) > 0 )
                <div class="alert alert-danger">
                    <ul> @foreach( $errors->all() as $error ) <li>{{ $error }}</li> @endforeach </ul>
                </div>
            @endif

            @if( session()->has('status_success_send_mail') )
                <div class="alert alert-success">
                    <ul> <li>{{ session('status_success_send_mail') }}</li> </ul>
                </div>
            @endif

            <form class="form-horizontal" name="contact_us_home_form" action="{{ route('home') }}" method="post" novalidate>
                <input type="hidden" name="_token" value="{{ csrf_token() }}">

                <div class="form-group">
                    <div class="col-lg-12 wow fadeInUp" data-wow-duration="1.5s" data-wow-delay="0.3s" data-wow-offset="80">
                        <input type="text" class="form-control <?=($errors->has('your_name')) ? 'input-error' : '';?>" name="your_name" id="your_name" placeholder="Your Name *" value="{{ old('your_name') }}">
                        @if ($errors->has('your_name')) <span class="help-block" style="color:darkred;"> {{ $errors->first('your_name') }} </span> @endif  
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-lg-12 wow fadeInUp" data-wow-duration="1.5s" data-wow-delay="0.3s" data-wow-offset="80">
                        <input type="email" class="form-control <?=($errors->has('your_email')) ? 'input-error' : '';?>" name="your_email" id="your_email" placeholder="Your E-mail *" value="{{ old('your_email') }}">
                        @if ($errors->has('your_email')) <span class="help-block" style="color:darkred;"> {{ $errors->first('your_email') }} </span> @endif  
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-lg-12 wow fadeInUp" data-wow-duration="1.5s" data-wow-delay="0.3s" data-wow-offset="80">
                        <textarea class="form-control <?=($errors->has('your_comment')) ? 'input-error' : '';?>" rows="5" name="your_comment" id="your_comment" placeholder="Your Message" value="{{ old('your_comment') }}"></textarea>
                        @if ($errors->has('your_comment')) <span class="help-block" style="color:darkred;"> {{ $errors->first('your_comment') }} </span> @endif  
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-lg-12 wow fadeInUp" data-wow-duration="1.5s" data-wow-delay="0.3s" data-wow-offset="80">
                        <button type="submit" class="btn btn-lg btn-danger" name="btn_submit_contact_us_home_form" id="btn_submit_contact_us_home_form">SEND MESSAGE</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
<!-- /Contact Section -->

[’middleware’=>[’web’] - убрал/ Ситуация не изменилась!

#7 Re: Laravel 5.x » Нет данных $_POST » 30.01.2018 12:32:37

laravel "обнуляет" глобальные переменные, используй \Illuminate\Http\Request

Я итак использую, в Конроллере, что привел в топике, и я получаю и через Request

        if( $request->isMethod('post') ) {  
            ......
            dd( $request->all() ); //NOTHING!!!

            //Validate
            ......
            return redirect()->route('home')
                ->withErrors($validator)->withInput($request->all()); 
        }

Но в это условия я не попадаю!

И если я поставлю dump выше условия с POST, то все равно Этот Объект Request пуст, даже когда данные в форме и форма отправлена

        dd( $request->all() ); //NOTHING!!! - вернее возвращается [] - т.е. пустой объект
        if( $request->isMethod('post') ) {  
            ......
            dd( $request->all() ); //NOTHING!!!

            //Validate
            ......
            return redirect()->route('home')
                ->withErrors($validator)->withInput($request->all()); 
        }

Т/е/ у меня, получается, нет Объекта Request по какой-то причине...

#8 Re: Laravel 5.x » Нет данных $_POST » 30.01.2018 12:15:15

Если хостинг бесплатный, то, скорее всего, дело в этом. У меня с хостинга zzz.com.ua письма не отправляются. Я у них спросил почему, так ответили, что покупай платный и пользуйся.

Да, хостинг бесплатный и,кстати, именно этот же - zzz.com.ua, НО, я в Контроллере вообще нативно хочу получить POST из обычной формы и не получаю (см.Контроллер в топике), к тому же на бекенд-части не одна аналогичная форма, - и все они работают надлежащим образом, без каких-либо проблем. Тут делр в чем-то другом.....

#9 Laravel 5.x » Нет данных $_POST » 30.01.2018 12:07:46

littus
Ответов: 8

Laravel-5.5
PHP  7.0.27
Linux carrot x86_64
Server: FPM/FastCGI (на локальном где все работает стоит- Apache 2.0 Handler )

Всем привет!
Столкнулся с такой проблемой. Разрабатывал проект на Laravel-5.5 на локальной машине(PHP/Server -7.0.26-2/Apache 2.0 Handler ). После чего залил весь проект,как есть на бесплатный хостинг, где у меня размещено несколько проектов наWordPress.
На хостинге в настройках выбрал версию PHP = 7.0.
Все в принципе работает нормально, за исключением того, что на фронтенд-части сервера не работает POST, - я его не получаю вообще.
На сайте есть форма- контактная форма и из нее из POST я должен получать данные для валидации и формирования письма, но POST я вообще не прлучаю.
При том что проект имеет бэкенд-часть, где у меня из Админ-панели редактируется некоторый контент и там есть аналогичные формы POST(для редактирования,добавления нового материала). Так вот эти формы в бэкэнде работают отлично (получаю POST данные из них, обрабатываю, валидирую). На локалке(с которой я копировал проект) конечно же все работает как нужно и все норм.

Контроллер

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator; 
use App\Http\Controllers\Controller;

use App\Page;
use App\People;
use App\Portfolio;
use App\Service;

class IndexController extends Controller
{
    public function execute( Request $request ) {

        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            var_dump($_POST);die; //NOTHING!!!
        }

        if( $request->isMethod('post') ) {  
            ......
            dd( $request->all() ); //NOTHING!!!

            //Validate
            ......
            return redirect()->route('home')
                ->withErrors($validator)->withInput($request->all()); 
        }


        return view('frontendsite.index', [
        ....
        ])->render();
}

Роут:

Route::group( ['middleware'=>['web'] ], function() { 
    Route::match(['get','post'], '/', ['uses'=>'IndexController@execute', 'as'=>'home']);

    Route::auth();
});

Во вью, где находится эта форма все стандартно - я использую просто стандартную форму с нужными полями:

    <form class="form-horizontal" name="contact_us_home_form" action="{{ route('home') }}" method="post" novalidate>
        <input type="hidden" name="_token" value="{{ csrf_token() }}">
           .....
    </form>

Как уже говорил, на бекен-части есть много форм и все они работают, - т.е.все норм, что меня вообще сбивает с толку, поскольку все одинаково по-сути, ну кроме того, что для бекенд-части у меня префикс другой и Класс-посредник другой, - тут ['auth'], а в том роуте,
что выше приведен - ['web']:

Route::group( [ 'prefix'=>'admin', 'middleware'=>['auth'] ], function() {
.....
});

В чем может заключаться проблема??

Сначала я подумал,что возможно не правильно перенес проект, т.к. по сути я просто, как есть, включая папку [vendor], скопировал сожержимое с локалки на бесплатный хост и там на хосте я не делал composer update, например. Но если так, то остальные формы на backend`e работают, - значит все норм. Так в чем же дело??

#10 Re: Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 14.07.2017 15:24:13

Ну вот же я прописал в Kernel.php доступ на запись в сессиию и запись ошибок. - https://prnt.sc/fvmmvu
До того как  я переделал через отдельный пользовательский Класс Request работало же.

#11 Re: Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 14.07.2017 13:23:33

Немного  продолжу ))))
Что я не верно сделал с учетом передела валидации через собственный Класс `Request` и,  + как мне советовали, я разделил роуты для GET и POST и определил для них отдельные методы в своем Контроллере.
1. app/Http/routes.php

Route::get('/contact_form/{prm?}', ['uses'=>'Admin\ContactformController@show_form_get'])->name('contact_form');

Route::post('/contact_form', ['uses'=>'Admin\ContactformController@show_form_post']);

2.. app/Http/Requests/ContactRequest.php - мой пользовательский Класс-Request с правилами валидации:

<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;

class ContactRequest extends Request
{

    public function authorize()
    {
        return true;  //false.
    }

 
    public function rules()
    {
        return [
            'name' => 'required|max:10',
            //'name' => 'exists:users,name',
            'email' => 'required|email',
            'site'=>'required',
        ];
    }

}  //__/class ContactRequest

3. app/Http/Requests/ContactRequest.php - мой Контроллер с обработкой POST и GET (теперь разделенных по отдельности):

<?php
namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Requests\ContactRequest;   //свой Класс `ContactRequest` с правилами валидации
use App\Http\Controllers\Controller;
use \Illuminate\Support\Facades\Validator;

class ContactformController extends Controller {

    public $show_controller_method = array(__METHOD__);
    //__________________________________________________________________________________________________________________

    /** Method handler http-request with GET
    */
    public function show_form_get( ){

        $this->show_controller_method[] = 'showform()';
        if( view()->exists('default.contact_form') ){
            return view('default.contact_form')->withInfoMethodController($this->show_controller_method);
        }
        else { abort(404); }

    }  //__/public function show_form_get()


    /** Method handler http-request with POST
    */
    public function show_form_post( ContactRequest $request ){

        /** VALIDATION on Request */
        if( $request->isMethod('post') ):
            dump( $request->all() );
        endif; //__/if( $request->isMethod('post') )

        $this->show_controller_method[] = 'showform()';
        if( view()->exists('default.contact_form') ){
            return view('default.contact_form')->withInfoMethodController($this->show_controller_method);
        }
        else { abort(404); }

    }

} //__/class ContactformController

4. Вью осталась таже, - т.е. там прописаны возвращение данных

value="{{ old('name') }}"  value="{{ old('email') }}"  и т.д. ...

а также отображение ошибок валидации ежели оные имеются:

@if( count($errors) > 0 )
    <div class="alert alert-danger">
        <ul>
            @foreach( $errors->all() as $error ) <li>{{ $error }}</li> @endforeach
        </ul>
    </div>
@endif

Сейчас как и прежде сама валидация работает (если она проходит успешно, - я вижу dump() поста, который я прописал в методе public function show_form_post ) Контроллера. Если валидация валится, то как и прежде редирект, но не ошибок валидации ни данных предыдущих input`ов нет.

По идее, должно работать. Почему нет?

#12 Re: Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 13.07.2017 18:01:39

llvllaestro, да, спасибо, он у меня был прописан как

use Validator;

, потом я экспериментировал с подключениями Классов и удалил его.
constb, супер, спасибо за возможные варианты и исчерпывающую инфу.

#13 Re: Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 12.07.2017 17:56:18

Огромное спасибо всем отписавшимся за помощь, - разобрался, все работает как нужно теперь.
Не знаю, почему не отработала конструкция, хотя должна и так работать (напомню проект на laravel 5.2):

 $this->validate($request, $rules)
dump( $request->all() );

Но я у себя сделал так и все стало работать и корректно (возвращаться при провале валидации "старые" поля с заполненными данными при отправке Формы и выводится ошибки валидации):

/** VALIDATION on Request */
        if( $request->isMethod('post') ):

            $rules = [
                'name' => 'required|max:10', 
                'email' => 'required|email',
                'site'=>'required',
            ];
            $messages = [
                'required' => 'The :attribute field is required.',
            ];

            $validator = \Validator::make($request->all(), $rules);
            if( $validator->fails() ) {
                $request->flash();
                return view('default.contact')
                    ->withMydata($my_array2)
                    ->withMydata2($my_array)
                    ->withMydata3($my_array3)
                    ->withTitlecontactpage($title_contact_page)
                    ->withInfoMethodController($this->show_controller_method)
                    ->withErrors($validator)
                    ->withInput( $request->all() );
            }
            dump( $request->all() );

        endif;

1. Если линию прописать именно так (без обратного слеша перед Validator) $validator = Validator::make($request->all(), $rules); будет выводиться ошибка `Class 'App\Http\Controllers\Admin\Validator' not found`

2.  Конструкции с return back()->withInput($request->input())->withErrors($validator); а также return redirect()->back()->withErrors($validator)->withInput($request->input());  - у меня не отрабатывают. И единственная успешная комбинация, которая все корректно вывела и сделала как должно быть у меня - приведена выше.

3. Вместо ->withInput( $request->all() ); можно прописать и ->withInput( $request->input() ) - тоже работает.

4. Вместо $validator = \Validator::make($request->all(), $rules); можно прописать $validator = $this->getValidationFactory()->make($request->all(), $rules); обратившись непосредственно к методу getValidationFactory() - тоже ОК - работает.

#14 Re: Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 11.07.2017 12:17:09

Вот я чувствую, что дело не только в этом, я когда прописываю

use Validator;

у себя в Контролллере, то редактор кода уже его подсвечивает как  undefined class Validatior. Но класс то есть, иначе валидация вообще бы не прходила.
Может быть при установке что-то не доставилось? Я через Composer ставил, все как нужно. Как теперь понять в чем дело? (((

#15 Re: Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 11.07.2017 11:52:41

)) Разумеется с большой буквы

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
//use Illuminate\Validation\Validator;
use Validator;

class ContactController extends Controller {

    public function show( Request $request, $prm=false){ 

        $my_array = ['title1'=>'This variable `$title1` content', 'title2'=>'This variable `$title2` content', 'title3'=>'This variable `$title3` content']; //массив
        $my_array2 = ['one'=>array('param1'=>'This variable `param1` content', 'param2'=>'This variable `param2` content', 'param3'=>'This variable `param3` content'),
            'two'=>array('param4'=>'This variabl e `param4` content', 'param5'=>'This variable `param5` content', 'param6'=>'This variable `param6` content')
        ];  //двумерный Массив

        $my_array3 = array(
            'title'=>'Contact',
            'data'=>[ 'one'=>'list 1',
                'two'=>'list 2',
                'three'=>'list 3',
                'four'=>'list 4',
                'five'=>'list 5',
            ],
            'dataI'=>['list-1','list-2','list-3','list-4','list-6','list-6'],
            'bvar'=>true,
            'script'=>"<script>alert('Hello! ++')</script>"
        );

        /** VALIDATION on Request */
        if( $request->isMethod('post') ) {

            $rules = [
                //'name' => 'bail|required|max:10',
                'name' => 'exists:users,name',
                //'email' => 'required|email',
                //'site'=>'required',
                //'text_area'=>'required',
            ];
            $messages = [
                'required' => 'The :attribute field is required.',
            ];

           /*
            $this->validate($request, $rules, $messages);
                dump( $request->all() );
                dump( $request->session()->all() );
            */

                                    $validator = Validator::make($request->all(), $rules, $messages);
                                    if ($validator->fails()) {
                                        return back()->withErrors($validator)->withInput();
                                    }
                                    dump( $request->all() );
        }


        $title_contact_page = 'Contact';
        $this->show_controller_method[] = 'show()';
        if( view()->exists('default.contact') ){
            return view('default.contact')
                ->withMydata($my_array2)
                ->withMydata2($my_array)
                ->withMydata3($my_array3)
                ->withTitlecontactpage($title_contact_page);
        }
        else { abort(404); }

    }

}

#16 Re: Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 11.07.2017 11:43:49

Если я ставлю

use Validator;

у себя в Контроллере app/Http/Controllers/Admin/ContactController.php
то мне редактор кода подсвечивает 

undefined class validatior 

#17 Re: Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 11.07.2017 11:18:54

vladislav, Я так и сделал во вью прописал:

        @if( count($errors) > 0 )
            <div class="alert alert-danger">
                <ul>
                    @foreach( $errors->all() as $error ) <li>{{ $error }}</li> @endforeach
                </ul>
            </div>
        @endif

        <form method="POST" action="{{  route('contact') }}">
            ..........
            ..........

В своем Контроллеле указал:

$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
   return back()->withErrors($valitor)->withInput();
}

плюс в Контроллере дополнительно указал:

use Illuminate\Validation\Validator;

Выдается ошибка:

FatalErrorException in ContactController.php line 64:
Call to undefined method Illuminate\Validation\Validator::make() 

#18 Re: Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 11.07.2017 11:03:04

vladislavTkachenko, а вы когда такой код в контроллере прописывали, larevel у вас видел метод  make()

 $validator = Validator::make($request->all(), $rules, $messages);
        if ($validator->fails()) {
            return back()->withErrors($validator)->withInput();
        }

----------------------------
Как я могу видеть то валидация отрабатывает и ее правила действуют, но я не вижу отображения ошибок валидации, когда она не пройдена и данных в полях input при заполнении Формы при редиректе обратно.

#19 Re: Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 10.07.2017 18:22:21

))) такая конструкция у меня не работает.

В Доке сказано  - если входящие данные не проходят проверку с учетом правил, Laravel автоматически перенаправляет пользователя на предыдущую страницу. Кроме того, все ошибки валидации будут автоматически записаны во flash-переменные.
Значит в сессию все должно записываться и редирект на предыдущую страницу осуществляется так и есть , сами же поля я возвращаю во вьюхе, вытаскивая из сессии. По ходу если я назначаю валидацию в Контроллере, то в сессию данные перестают записываться.

#20 Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 10.07.2017 14:36:06

littus
Ответов: 22

Всем доброго дня!
Как я понимаю проблема в том, что в сессию не сохраняются данные формы и текст ошибок валидации. Если я все тоже самое делаю, но без валидации данных в Контроллере, то в сесиию все отлично сохраняется.

Есть простая вью с формой отправки данных (через шаблонизатор 'blade'):

<!--Main content-->
@section('main_content')
<pre>  
    {{ var_dump( Session::all() ) }} <!-- Or - var_dump( Session::all() and  var_dump( Session::all()['_old_input']['name'] ); -->
</pre>
    <!---->
    <div class="row center-block">
        <div class="col-lg-offset-3 col-md-offset-3 col-sm-offset-3 col-lg-6 col-md-6 col-sm-6 col-xs-12">

        <form method="POST" action="<?='/contact';?>">  <!-- <?//=route('contact');?> Or в удвоенных фиг.скобках route('contact') -->
            <div class="form-group">
                <label for="name">Name:</label>
                <input type="text" class="form-control" id="name" name="name" value="{{ old('name') }}" placeholder="Enter Name">
            </div>
            <div class="form-group">
                <label for="email">Email address:</label>
                <input type="email" class="form-control" id="email" name="email" value="{{ old('email') }}" placeholder="Enter E-mail">
            </div>
            <div class="form-group">
                <label for="site">Site:</label>
                <input type="text" class="form-control" id="site" name="site" value="{{ old('site') }}" placeholder="Enter Site">
            </div>
            <div class="form-group">
                <label for="text_area">Text:</label>
                <textarea class="form-control" id="text_area" name="text_area" rows="3" placeholder="Some text....."> {{ old('text_area') }} </textarea>
            </div>

            <div class="checkbox">
                <label><input type="checkbox" name="checkbox"> Remember me</label>
            </div>
            <button type="submit" class="btn btn-default">Submit</button>
        </form>

        </div> <!--/class="col-"-->
    </div> <!--/class="row"-->
@endsection
<!--/Main content-->

Есть простой Контроллер `ContactController.php`

<?php
namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class ContactController extends Controller {


    public function show( Request $request, $prm=false ){

        $my_array = ['title1'=>'This variable `$title1` content', 'title2'=>'This variable `$title2` content', 'title3'=>'This variable `$title3` content']; //массив
        $my_array2 = ['one'=>array('param1'=>'This variable `param1` content', 'param2'=>'This variable `param2` content', 'param3'=>'This variable `param3` content'),
            'two'=>array('param4'=>'This variabl e `param4` content', 'param5'=>'This variable `param5` content', 'param6'=>'This variable `param6` content')
        ];

        $my_array3 = array(
            'title'=>'Contact',
            'data'=>[ 'one'=>'list 1',
                'two'=>'list 2',
                'three'=>'list 3',
                'four'=>'list 4',
                'five'=>'list 5',
            ],
            'dataI'=>['list-1','list-2','list-3','list-4','list-6','list-6'],
            'bvar'=>true,
            'script'=>"<script>alert('Hello! ++')</script>"
        );

        /** VALIDATION on Request */
        if( $request->isMethod('post') ) {
            //$request->session()->reflash();
            //$request->session()->keep(['name', 'email', 'site', 'text_area']);
            //$request->session()->reflash();
            //dump( $request->session()->all() );


            $rules = [
                'name' => 'required|max:10',
                'email' => 'required|email',
                //'site'=>'required',
                //'text_area'=>'required',
            ];

            $messages = [
                'required' => 'The :attribute field is required.',
            ];

            $this->validate($request, $rules, $messages);
                dump( $request->all() );
                dump( $request->session()->all() );
        }


        if( view()->exists('default.contact') ){
            return view('default.contact')
                ->withMydata($my_array2)
                ->withMydata2($my_array)
                ->withMydata3($my_array3);
        }
        else { abort(404); }

    }

} //__/class ContactController

По идее,когда валидация данных по установленным правилам успешна для кадого из перечисленных полей Формы, то код после инициализации процесса валидации (строка $this->validate($request, $rules, $messages);) будет выполнен и я получаю dump того, что в POST и того, что будет записано в сессию. Когда валидация успешна, данные в Форме не должны оставаться, а вот когда валидация провалена, то должно генерироваться исключение и должен происходить редирект на предыдущую страницу, а данные, сохраняться в сессии и, благодаря указанной конструкции в вьюхе
value="{{ old('name') }}" отображаться в полях. Но у меня этого не происходит.
Если я верно ввожу данные в форму, чтобы валидация была успешна, - я вижу распечатку POST, что значит, валидация таки успешно прошла (и правила то действуют, указанные в Контролллере), но вот когда я ввожу не верные для валидирования данные, чтоб провалить ее, то и сохраненных данных в полях я не вижу, что как я понимаю, должно быть автоматически в этом механизме валидации заложено.

Скажу также, что разрешение на запись flash()-данных, да и вообще запись в сессию, как я понимаю, я тоже прописал в `/app/Http/Kernel.php`

    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    ];

При этом, как я говорил, если я не буду в контроллере проводить валидацию данных, и установлю $request->flash(); чтобы данные из POST записывались в сессию одноразово, то они записываются и в Форме остаются, т.е. тут все работает корректно.
Но используя валидацию, я эту строку $request->flash(); удаляю, т.к. судя по документации механизм валидации сам это делает и это писать не нужно.

Кто подскажет, что я забыл прописать или сделал не верно, что у меня не работает валидация совместно с записью в сессию и отображением после провала валидации и соответственно редиректа, Формы с данными заполненными при отправки поста?

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