59 lines
1.7 KiB
PHP
59 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
|
use Illuminate\Foundation\Bus\DispatchesJobs;
|
|
use Illuminate\Foundation\Validation\ValidatesRequests;
|
|
use Illuminate\Routing\Controller as BaseController;
|
|
use Illuminate\Support\Arr;
|
|
use Illuminate\Support\Facades\Validator;
|
|
|
|
class Controller extends BaseController
|
|
{
|
|
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
|
|
|
/**
|
|
* 验证
|
|
*
|
|
* @param array $rules
|
|
* @param array $messages
|
|
* @param array $customAttributes
|
|
* @param bool|array $only
|
|
* @return array
|
|
*/
|
|
public function toValidator(array $rules, array $messages = [], array $customAttributes = [], bool|array $only = []): array
|
|
{
|
|
$input = request()->all();
|
|
$validator = Validator::make($input, $rules, $messages, $customAttributes)->stopOnFirstFailure();
|
|
if ($validator->fails()) {
|
|
$messages = $validator->messages()->getMessages();
|
|
json_error(Arr::first($messages)[0]);
|
|
}
|
|
if ($only === true) {
|
|
return Arr::only($input, array_keys($rules));
|
|
}
|
|
if (count($only)) {
|
|
return Arr::only($input, $only);
|
|
}
|
|
return $input;
|
|
}
|
|
|
|
/**
|
|
* ID验证
|
|
*
|
|
* @param string $idField
|
|
* @return int
|
|
*/
|
|
public function getId(string $idField = 'id'): int
|
|
{
|
|
$id = request()->input($idField);
|
|
$validator = Validator::make(['id' => $id], ['id' => 'required|integer|min:1'], ['id' => '数据传参错误'])->stopOnFirstFailure();
|
|
if ($validator->fails()) {
|
|
$messages = $validator->messages()->getMessages();
|
|
json_error(Arr::first($messages)[0]);
|
|
}
|
|
return $id;
|
|
}
|
|
}
|