Когда проверка не проходит, я ничего не получаю в переменной $errors
, она работала, но теперь она остановилась, и я понятия не имею, почему.
Я перепробовал несколько вещей, изменил ошибочные поля, сделал запрос в разных методах запроса, я прокомментировал разные методы в запросе и ничего. Я исключил метод из промежуточного программного обеспечения, которое я использую (Просмотреть промежуточное программное обеспечение composer), и ничего. Есть идеи, что происходит?
Важным примечанием является то, что представление create одинаково для редакции. Когда он «создает» сообщение, обращается к методу store, который использует родительский запрос PostRequest, и все работает отлично, заполняется переменная $ errors.
Какой-то код.
Файл маршрута моих сообщений:
Route::resource('posts', 'PostController');
RouteServiceProvider
метод, в котором я четко включаю промежуточное ПО web
:
protected function mapPostsRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/posts.php'));
}
Где я использую свой пользовательский запрос формы при моем методе обновления PostController
:
/**
* @param PostUpdateRequest $request
* @param Post $post
* @return Factory|RedirectResponse|View
*/
public function update(PostUpdateRequest $request, Post $post)
{
// and so on
Мой ребенок PostUpdateRequest
запрос на обновление формы:
<?php
namespace App\Http\Requests;
use Illuminate\Validation\Rule;
class PostUpdateRequest extends PostRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return array_merge(
parent::rules(), [
'slug' => [
'required', 'string',
Rule::unique('posts', 'slug')->ignore($this->slug, 'slug')
],
]);
}
}
Его отец PostRequest
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Str;
use Illuminate\Validation\Rule;
class PostRequest extends FormRequest
{
protected function prepareForValidation()
{
$this->merge([
'slug' => Str::slug($this->title),
]);
}
/**
* @return array
*/
public function rules()
{
return [
'title' => 'required|string',
'content' => 'string|required|',
'status' => 'required|string',
'attachmentvalue' => 'string',
'slug' => [
'required',
'string',
'min:2',
Rule::unique('posts', 'slug')
],
];
}
/**
* @return array
*/
public function messages()
{
return array_merge(
parent::messages(),
[
'title.required' => __('El título es obligatorio'),
'content.required' => __('El artículo debe poseer un contenido'),
'slug.string' => __('Ya hay un artículo con ese título'),
'attachmentvalue.string' => __('El artículo debe contener una imagen estacada'),
]
);
}
/**
* @return array
*/
public function attributes()
{
return [
'title' => __('Título'),
'content' => __('Contenido'),
'attachmentvalue' => __('Adjunto')
];
}
}