Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Нет, почему-то не отрабатывает и все по прежнему.
Я дам немного конкретики, вохможно это поможет.
Еть сервер на котором я размещаю проекты его имя отсается в общем 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
нет, так вообще ничего не работает
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]
Вместо каких именно строк в моем файле? Не могли бы помочь.
Я нечно подобное пробовал, но наверное не там прописал/
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".
[’middleware’=>[’web’] - убрал/ Ситуация не изменилась!Не возвращай, иначе будут проблемы с сессиями.Форма выглядит нормально. А проверял как она рендерится? Не ломается ничего?
Почему проблемы с сессиями? Вроде делал по документации и примерам, там для фронтенд части сайта была определена группа для всех роутов и посредником назначен web - [’middleware’=>[’web’]
В общем-то на локалке стоит с ним и все работает, и в сессию тоже пишет и флэш-сообщения с сессии тоже вытягивает, - одним словом все ном/
Но то на локалке/
Да, отрендеринаая форма выглядит так как нужно - все норм/
Тут что-то другое, я не знаю/
Возможно или с .htaccess связанное, т/к/ у себя на виртуальном сервере на локалке я поставил, что корень моего сайта (т/входа) - это [public], здесь же на хосте, я не могу так сделать,- у меня нет возможности такой, поэтому к своему приложению я обращаюсь сейчас как
domen/public/
Но, на бекенде то все работает/
Убери [’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’] - убрал/ Ситуация не изменилась!
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 по какой-то причине...
Если хостинг бесплатный, то, скорее всего, дело в этом. У меня с хостинга zzz.com.ua письма не отправляются. Я у них спросил почему, так ответили, что покупай платный и пользуйся.
Да, хостинг бесплатный и,кстати, именно этот же - zzz.com.ua, НО, я в Контроллере вообще нативно хочу получить POST из обычной формы и не получаю (см.Контроллер в топике), к тому же на бекенд-части не одна аналогичная форма, - и все они работают надлежащим образом, без каких-либо проблем. Тут делр в чем-то другом.....
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 работают, - значит все норм. Так в чем же дело??
Ну вот же я прописал в Kernel.php доступ на запись в сессиию и запись ошибок. - https://prnt.sc/fvmmvu
До того как я переделал через отдельный пользовательский Класс Request работало же.
Немного продолжу ))))
Что я не верно сделал с учетом передела валидации через собственный Класс `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`ов нет.
По идее, должно работать. Почему нет?
llvllaestro, да, спасибо, он у меня был прописан как
use Validator;
, потом я экспериментировал с подключениями Классов и удалил его.
constb, супер, спасибо за возможные варианты и исчерпывающую инфу.
Огромное спасибо всем отписавшимся за помощь, - разобрался, все работает как нужно теперь.
Не знаю, почему не отработала конструкция, хотя должна и так работать (напомню проект на 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() - тоже ОК - работает.
Вот я чувствую, что дело не только в этом, я когда прописываю
use Validator;
у себя в Контролллере, то редактор кода уже его подсвечивает как undefined class Validatior. Но класс то есть, иначе валидация вообще бы не прходила.
Может быть при установке что-то не доставилось? Я через Composer ставил, все как нужно. Как теперь понять в чем дело? (((
)) Разумеется с большой буквы
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); }
}
}
Если я ставлю
use Validator;
у себя в Контроллере app/Http/Controllers/Admin/ContactController.php
то мне редактор кода подсвечивает
undefined class validatior
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()
vladislavTkachenko, а вы когда такой код в контроллере прописывали, larevel у вас видел метод make()
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
return back()->withErrors($validator)->withInput();
}
----------------------------
Как я могу видеть то валидация отрабатывает и ее правила действуют, но я не вижу отображения ошибок валидации, когда она не пройдена и данных в полях input при заполнении Формы при редиректе обратно.
))) такая конструкция у меня не работает.
В Доке сказано - если входящие данные не проходят проверку с учетом правил, Laravel автоматически перенаправляет пользователя на предыдущую страницу. Кроме того, все ошибки валидации будут автоматически записаны во flash-переменные.
Значит в сессию все должно записываться и редирект на предыдущую страницу осуществляется так и есть , сами же поля я возвращаю во вьюхе, вытаскивая из сессии. По ходу если я назначаю валидацию в Контроллере, то в сессию данные перестают записываться.
Всем доброго дня!
Как я понимаю проблема в том, что в сессию не сохраняются данные формы и текст ошибок валидации. Если я все тоже самое делаю, но без валидации данных в Контроллере, то в сесиию все отлично сохраняется.
Есть простая вью с формой отправки данных (через шаблонизатор '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(); удаляю, т.к. судя по документации механизм валидации сам это делает и это писать не нужно.
Кто подскажет, что я забыл прописать или сделал не верно, что у меня не работает валидация совместно с записью в сессию и отображением после провала валидации и соответственно редиректа, Формы с данными заполненными при отправки поста?