初始化项目
This commit is contained in:
58
app/Http/Controllers/Controller.php
Normal file
58
app/Http/Controllers/Controller.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user