如何在Laravel视图中显示验证错误的方法

112 阅读1分钟

验证反馈信息对任何CRUD风格的应用程序来说都是非常宝贵的补充。如果你的应用程序允许用户创建存储在数据库中的记录, 那么你当然会想在保存到数据库之前验证它们.Laravel自带了一些方法来处理这个问题,而且它自带的Laravel刀片语法会向用户显示任何验证错误。

确保执行验证检查并将其报告到视图中有两个步骤,请执行以下步骤以将验证错误添加到视图中

步骤1

确保对控制器中提交的请求数据执行正确的验证检查。

在这个控制器的创建函数中,产品的数据是要预先设定的,一个string 名称和一个double 重量

列表

public function store(Request $request)
    {
        
        $product = new Product([
            "name" => $request->get('name'),
            "weight" => $request->get('weight')
        ]);
        
        $product->save();

        return view('products.index');

    }

正如你所看到的,控制器函数处理提交的数据,并将其保存到数据库中,但没有进行任何检查。我们可以调整这个控制器来验证输入的数据,比如说

PHP

public function store(Request $request)
    {
        //**** Validate the inputs here
        $request->validate([
            'name' => 'required',
            'weight' => 'required',
        ]);
        //****
        
        $product = new Product([
            "name" => $request->get('name'),
            "weight" => $request->get('weight')
        ]);
        
        $product->save();

        return view('products.index');

    }

现在控制器使用$request->validate() ,对照请求中提交的数据检查指定的规则。如果一切正常,它将继续并创建一个新的产品记录,如果不正常,它将退出,重定向到创建视图,并通过$errors

第二步

现在控制器正在验证请求,你只需要在视图文件中添加以下代码,我喜欢确保它在表单的上方,但这完全取决于你。

PHP

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

validation errors laravel view

就这样,确保在控制器中设置验证方法,并在视图(或布局文件)中添加错误循环,以便在全站实现这一功能。

The postHow To Show Validation Errors In Laravel Viewsappeared first onCode Wall.