Files
xk-api-old-laravel/app/Http/Controllers/Controller.php
2025-01-11 14:16:20 +08:00

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;
}
}