作者 邓超

x

... ... @@ -173,9 +173,5 @@ class BaseController extends Controller
protected final function logic($c){
}
}
... ...
... ... @@ -68,7 +68,7 @@ class TemplateController extends BaseController
$data = $this->verify(TemplateRequest::class,$scene);
(new TemplateLogic())->save($data);
TemplateLogic::instance()->save($data);
}
... ...
... ... @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Helper\Common;
use App\Http\Controllers\Controller;
use App\Http\Requests\Scene;
use App\Models\User\User as UserModel;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
... ... @@ -216,4 +217,18 @@ class BaseController extends Controller
}
/**
* 验证
* @param $c
* @param $scene
* @return array
* @author:dc
* @time 2023/5/11 14:56
*/
protected final function verify($c,$scene=null){
return (new $c())->setScene($scene?:Scene::$CREATE)->validated();
}
}
... ...
... ... @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Http\Requests\Bside\Nav\NavRequest;
use App\Models\BNav;
/**
... ... @@ -16,42 +17,6 @@ use App\Models\BNav;
class NavController extends BaseController
{
/**
* 验证规则
* @var array[]
*/
private $verify = [
'role' => [
'pid' => ['required','integer','gte:0'],
'name' => ['required','max:100'],
'location' => ['required','in:header,footer'],
'url' => ['required','max:200'],
'status' => ['required','in:0,1'],
'target' => ['required','in:0,1'],
'sort' => ['required','integer','gte:0']
],
'message' => [
'pid.required' => '上级选择错误',
'pid.gte' => '上级选择错误',
'pid.integer' => '上级选择错误',
'name.required' => '名称必须',
'name.max' => '名称不能超过100个字符',
'location.required' => '位置选择错误',
'location.in' => '位置选择错误',
'url.required' => '链接必须',
'url.max' => '链接不能超过200个字符',
'status.required' => '状态选择错误',
'status.in' => '状态必须是显示/隐藏',
'target.required' => '打开方式必须',
'target.in' => '打开方式选择错误',
'sort.required' => '排序必须',
'sort.integer' => '排序必须是一个数字',
'sort.gte' => '排序必须大于等于0',
],
'attr' => [
]
];
/**
* 列表数据
... ... @@ -98,9 +63,7 @@ class NavController extends BaseController
* @time 2023/5/8 17:06
*/
public function update(){
$this->verify['role']['id'] = ['required','integer','gt:0'];
$this->verify['message']['id.gt'] = $this->verify['message']['id.integer'] = $this->verify['message']['id.required'] = '编辑导航数据不存在';
return $this->save();
return $this->save(true);
}
/**
... ... @@ -112,8 +75,9 @@ class NavController extends BaseController
* @author:dc
* @time 2023/5/8 17:06
*/
private function save(){
$data = $this->validate(request() ,$this->verify['role'],$this->verify['message']);
private function save($edit=false){
$data = $this->verify(NavRequest::class,$edit?NavRequest::$UPDATE:null);
if($data['pid']){
// 验证是否存在上级
... ...
... ... @@ -26,4 +26,15 @@ class BaseLogic extends Logic
$this->user = Session::get('manage');
}
/**
* 获取实例
* @param mixed ...$params
* @return static
* @author:dc
* @time 2023/5/11 15:23
*/
public static function instance(...$params){
return new static(...$params);
}
}
... ...
<?php
namespace App\Http\Requests\Bside\Nav;
use App\Http\Requests\Scene;
use Illuminate\Foundation\Http\FormRequest;
/**
* 导航 c端的 nav
* @author:dc
* @time 2023/5/11 15:20
* Class NavRequest
* @package App\Http\Requests\Bside\Nav
*/
class NavRequest extends FormRequest
{
use Scene;
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rule = [
'pid' => ['required','integer','gte:0'],
'name' => ['required','max:100'],
'location' => ['required','in:header,footer'],
'url' => ['required','max:200'],
'status' => ['required','in:0,1'],
'target' => ['required','in:0,1'],
'sort' => ['required','integer','gte:0']
];
if($this->isScene(static::$UPDATE)){
$rule['id'] = ['required','integer'];
}
return $rule;
}
public function messages()
{
return [
'id.required' => '编辑导航数据不存在',
'id.integer' => '编辑导航数据不存在',
'pid.required' => '上级选择错误',
'pid.gte' => '上级选择错误',
'pid.integer' => '上级选择错误',
'name.required' => '名称必须',
'name.max' => '名称不能超过100个字符',
'location.required' => '位置选择错误',
'location.in' => '位置选择错误',
'url.required' => '链接必须',
'url.max' => '链接不能超过200个字符',
'status.required' => '状态选择错误',
'status.in' => '状态必须是显示/隐藏',
'target.required' => '打开方式必须',
'target.in' => '打开方式选择错误',
'sort.required' => '排序必须',
'sort.integer' => '排序必须是一个数字',
'sort.gte' => '排序必须大于等于0',
];
}
}
... ...
... ... @@ -94,29 +94,29 @@ class ATemplate extends \App\Models\Base{
}
/**
* @param array $data
* @param int $id
* @author:dc
* @time 2023/5/11 10:08
*/
public static function _save(array $data,int $id=0){
if($id){
$model = static::where('id',$id)->first();
}
if(empty($model)) $model = new static();
$model->name = $data['name'];
$model->status = $data['status'];
$model->is_default = $data['is_default'];
$model->sort = $data['sort'];
$model->thumb = $data['thumb'];
$model->url = $data['url'];
$model->save();
return $model->id;
}
// /**
// * @param array $data
// * @param int $id
// * @author:dc
// * @time 2023/5/11 10:08
// */
// public static function _save(array $data,int $id=0){
// if($id){
// $model = static::where('id',$id)->first();
// }
// if(empty($model)) $model = new static();
//
// $model->name = $data['name'];
// $model->status = $data['status'];
// $model->is_default = $data['is_default'];
// $model->sort = $data['sort'];
// $model->thumb = $data['thumb'];
// $model->url = $data['url'];
//
// $model->save();
//
// return $model->id;
// }
... ...