我已创建用于处理验证错误的消息,但无法正常工作。我已经使用验证器方法来处理错误。以下是我的代码:
<?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);
}
}
我应使用哪种方法来处理验证错误,以及如何解决此问题?
您不应使用
$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'));