$ errors возвращает ноль в laravel 5.4 - PullRequest
0 голосов
/ 22 ноября 2018

Итак, я работаю с laravel 5.4, и я застрял в этой ошибке и не могу ее понять. Я исследовал эту ошибку, и я видел, что это произошло раньше, но решения не работают надмой проект.

Я создал форму для добавления комментариев на своей странице, и она работает, если я что-то набираю, она сохраняет ее в базе данных, и проверка работает, потому что она не позволяет мне добавлять пустой комментарий, но не отображает ошибки на странице.This is the comment form in views

<form method="post" action="{{ route('comments.store') }}">
    {{ csrf_field() }}

    <input type="hidden" name="commentable_type" value="App\Company">
    <input type="hidden" name="commentable_id" value="{{ $company->id }}">

    <h2>Add a comment</h2>
    <div class="form-group @if($errors->has('url')) has-error @endif">
        <label for="comment-content">Work done (url/title)</label>
        <textarea placeholder="Enter url/title"
                  style="resize: vertical;"
                  id="comment-content"
                  name="url"
                  rows="2" 
                  spellcheck="false"
                  class="form-control autosize-target text-left">
        </textarea>
    </div>

    <div class="form-group @if($errors->has('body')) has-error @endif">
        <label for="comment-content">Comment</label>
        <textarea placeholder="Enter comment"
                  style="resize: vertical;"
                  id="comment-content"
                  name="body"
                  rows="3"
                  spellcheck="false"
                  class="form-control autosize-target text-left">
        </textarea>
    </div>

    <div class="form-group">
        <input type="submit" class="btn btn-primary" value="Submit"/>
    </div>
</form>

Это CommentsControlles.php

public function store(CommentSubmitFormRequest $request)
{
    $comment = Comment::create([
        'body' => $request->input('body'),
        'url' => $request->input('url'),
        'commentable_type' => $request->input('commentable_type'),
        'commentable_id' => $request->input('commentable_id'),
        'user_id' => Auth::user()->id
    ]);

    if ($comment)
    {
        return back()->with('success', 'Comment added successfully');
    }
}

И это запрос CommentSubmitFormRequest.php

class CommentSubmitFormRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }
    public function rules()
    {
        return [
            'body' => 'required',
            'url' => 'required',
        ];
    }
}

Когда я отправляюпустая форма комментария $errors возвращает ноль, а не ошибки

1 Ответ

0 голосов
/ 22 ноября 2018

Ваши правила проверки являются неполными.Это только говорит, что требуется, и в вашем случае ваши body и url отправляются, потому что поля существуют.Вы должны установить минимальное количество символов или сделать active_url/url для поля url.

public function rules()
{
    return [
        'body' => 'required|min:1', // minimum length of 1 character
        'url' => 'required|url', // must be a valid URL
    ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...