3 回答

TA貢獻1862條經驗 獲得超6個贊
在拉拉維爾中,有許多方法可以驗證數據。
我更喜歡的不是在控制器中編寫驗證檢查并將其寫入單獨的表單請求,并將該請求對象用作參數。
假設我們有一個用戶模型,并且需要一個名稱和控制器的唯一in和方法,你可以簡單地使用對象,如下所述。storeupdateUserRequest
創建表單請求類
php artisan make:request UserRequest
class UserRequeset extends Request
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$id = request('id') ?: 'NULL'; // To identify if a request is for store or update just take autoincremented id parameter from request
return [
'name' => "required|unique:users,name,$id"
];
// You can also customize your validation for different methods as below
switch ($this->method()) {
case 'POST':
return [
// validation for post method
];
break;
case 'PUT':
return [
// validation for put method
];
break;
default:
return [];
break;
}
}
public function messages()
{
return [
"name.required" => "User name is required",
"name.unique" => "User name should be unique"
// or you can customize this using language
"name.required" => __("user.required_message"),
"name.unique" => __("user.unique_message")
];
}
}
在UserController
use App\Http\Requests\UserRequest;
class UserController extends Controller
{
public function store(UserRequest $request)
{
// Enter your code just after validation part no need of any validation code here
}
public function update(UserRequest $request)
{
// Enter your update code just after validation part no need of any validation code here
}
}

TA貢獻1859條經驗 獲得超6個贊
您可以使用以下方法執行此操作:
$this->validate(
$request,
[
'YOUR INPUT FIELD NAME' => 'required',
]
);
你也可以使用自拉威爾5.5+:$request->validate()
$request->validate(
[
'YOUR INPUT FIELD NAME' => 'required',
]
);

TA貢獻1776條經驗 獲得超12個贊
$validator = Validator::make($request->all(), [
'phone' => 'sometimes|max:255',
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255',
'pic_file' => 'sometimes|mimes:jpg,png,jpeg,gif|max:1000',
]);
if ($validator->fails()) {
return redirect('/')->withErrors($validator);
}
- 3 回答
- 0 關注
- 85 瀏覽
添加回答
舉報