【问题标题】:My API validation message in not working in Laravel 7.x我的 API 验证消息在 Laravel 7.x 中不起作用
【发布时间】:2020-10-03 00:06:13
【问题描述】:

我创建了用于处理验证错误的消息,但它无法正常工作。我使用了验证器方法来处理错误。以下是我的代码:

<?php

namespace App\Http\Controllers;

use App\CountryModel;
use Illuminate\Http\Request;
use App\Http\Controllers;
use Validator;

class CountryController extends Controller
{
public function country(){
    return response()->json(CountryModel::get(), 200);}

public function countryByID($id){
    $country = CountryModel::find($id);
    if (is_null($country)) {
        return response()->json(["message" => "Record not found!"], 404);
    }
    return response()->json($country, 200);}

public function countrySave(Request $request){
    $rules = [
        'name'=>'required|min:3',
        'iso'=>'required|min:2|max:2',
        'dname'=>'required|min:3',
    ];
    $validator = Validator::make($request->all(),$rules);
    if ($validator->fails()) {
        return response()->json($validator->errors(), 400);
    }

    $country = CountryModel::create($request->all());
    return response()->json($country, 201);
}

public function countryUpdate(Request $request, $id){
    $country= CountryModel::find($id);
    if (is_null($country)) {
        return response()->json(["message" => "Record not found!"], 404);
    }
    $country->update($request->all());
    return response()->json($country, 200);
}

public function countryDelete(Request $request, $id){
    $country= CountryModel::find($id);
    if (is_null($country)) {
        return response()->json(["message" => "Record not found!"], 404);
    }
    $country->delete();
    return response()->json(null, 204);
}
}  

我应该使用哪种方法来处理验证错误以及如何解决这个问题?

【问题讨论】:

  • 您在控制器内部进行验证

标签: php laravel laravel-7 laravel-validation validationerror


【解决方案1】:

你不应该使用

$country = CountryModel::create($request->all());

$country->update($request->all());

在插入或更新模型时,因为它在请求中包含 _token。

用下面的代码替换上面两行

$country = CountryModel::create($request->only('name','iso','dname'));
                              or
$country = CountryModel::create($request->except('_token'));


$country->update($request->only('name','iso','dname'));
                              or
$country->update($request->except('_token'));

【讨论】:

    猜你喜欢
    • 2019-01-15
    • 2018-08-19
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 2016-12-20
    • 2012-08-29
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多