public function getClassesinfo(Request $request, $id){
// ......
}
我定義了個方法,$request 里的值我用的是 tinywan/validate 驗證的。
那這個 $id 應(yīng)該咋驗證?誰能給個示例,比如只能是整數(shù)
驗證器寫法
class UserValidate extends Validate
{
public $rule = [
'id' => 'require|number|checkUser',
];
public $message = [
'id.require' => '主鍵ID不能為空',
'id.number' => '主鍵ID必須是數(shù)字',
'id.checkUser' => '主鍵ID不合法',
];
/**
* @param int $value
* @return bool
* @author: sansi
*/
public function checkUser(int $value): bool
{
return WaterUserModel::find($value) !== null;
}
protected $scene = [
'create' => ['user_name,password'], // 新增數(shù)據(jù)時需要驗證的字段
'edit' => ['id'], // 編輯數(shù)據(jù)時需要驗證的字段
'query' => ['start_time', 'end_time'], // 查詢數(shù)據(jù)時需要驗證的字段
];
}
```、
如何調(diào)用
```php
public function addUser($request,$id)
{
$validate = new UserValidate();
if (!$validate->scene('edit')->check($request->post())) {
throw new ApiException($validate->getError());
}
//接下來的邏輯處理
}
也可以直接這樣
use Tinywan\Validate\Validate;
class UserValidate extends Validate
{
public $rule = [
'id' => 'number',
];
public $message = [
'id.number' => '主鍵ID必須是數(shù)字',
];
}
public function addUser($request,$id)
{
$validate = new UserValidate();
if (!$validate->check(['id'=>111])) {
throw new ApiException($validate->getError());
}
//接下來的邏輯處理
}