【问题标题】:$errors returns null in laravel 5.4$errors 在 laravel 5.4 中返回 null
【发布时间】:2019-04-25 04:19:31
【问题描述】:

所以我正在使用 laravel 5.4,但我陷入了这个错误,无法弄清楚。我研究了这个错误,我已经看到这发生过,但解决方案不起作用我的项目。

我创建了一个表单来在我的页面中添加 cmets,如果我输入一些内容,它将它保存在数据库中并且验证正在工作,因为它不允许我添加空注释但它没有显示页面中的错误。 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 返回 null 而不是错误

【问题讨论】:

    标签: php laravel laravel-5.4


    【解决方案1】:

    您的验证规则不完整。它只是说是必需的,在您的情况下,您的bodyurl 被发送,因为这些字段确实存在。您应该为url 字段设置最少字符数或使用active_url/url

    public function rules()
    {
        return [
            'body' => 'required|min:1', // minimum length of 1 character
            'url' => 'required|url', // must be a valid URL
        ];
    }
    

    【讨论】:

    • 此表单不允许我在数据库中添加空正文或无效 url,这很好,但消息未显示在页面中。 $errors 再次返回 null!
    猜你喜欢
    • 2017-07-29
    • 2017-09-03
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 2017-11-19
    • 2017-11-27
    • 1970-01-01
    相关资源
    最近更新 更多