【问题标题】:Laravel make validation request not workingLaravel 使验证请求不起作用
【发布时间】:2020-12-25 11:49:37
【问题描述】:

当我提交表单时,什么也没有发生。
这是我的步骤。

php artisan make:request PostRequest

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class PostRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'title'=>['required','max:255'],
            'article'=>['required'],
            'image'=>['image']
        ];
    }

    public function messages()
    {
        return [
            'title.required'=>['need title'],
            'article.required'=>['need article'],
        ];
        
    }
}
?>

App/Http/Controllers/PostController.php

<?php

namespace App\Http\Controllers;


use App\Post;
use App\User;
use Illuminate\Http\Request;
use App\Http\Requests\PostRequest;
use Illuminate\Support\Facades\Auth;

class PostController extends Controller
{
    public function store(PostRequest $request)
    {
        Post::create($request->all());
        return redirect()->route('post.index');
    }
}
?>

如果我不使用 PostRequest 它可以完美地工作,就像这样。

app/Http/Controllers/PostController.php

public function store(Request $request)
    {
        $post=new Post;
        $post->user_id=Auth::user()->id;
        $post->title=$request->title;
        $post->article=$request->article;
        $post->image=$request->image;
        $post->save();
        return redirect()->route('post.index');
    }

我错过了什么步骤? 谢谢大家。

【问题讨论】:

    标签: laravel laravel-validation laravel-request


    【解决方案1】:

    您的 rules() 函数有一个返回数组。

    public function rules()
    {
        return [
            'title'=>['required','max:255'],
            'article'=>['required'],
            'image'=>['image']
        ];
    }
    

    改成

    public function rules()
    {
        return [
            'title'=>'required|max:255',
            'article'=>'required',
            'image'=>'image'
        ];
    }
    

    【讨论】:

    • 仍然无法正常工作。当我提交时,只需清除表单并没有任何反应。
    • 你离你更近了一步。请在您的表单文件中添加以下代码以检查验证错误。 @if($errors-&gt;has()) @foreach ($errors-&gt;all() as $error) &lt;div&gt;{{ $error }}&lt;/div&gt; @endforeach @endif
    猜你喜欢
    • 2020-12-10
    • 1970-01-01
    • 2020-07-17
    • 2016-01-19
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 2017-11-21
    • 2020-01-13
    相关资源
    最近更新 更多