控制器:
class Product extends BaseController
{
/*
* 获取最近的商品
* */
public function getRecent($count=15)
{
(new Count())->goCheck();
$products =ProductModel::getMostRecent($count);
//实现字符串转数组
if (!$products){
throw new ProductException();
}
//合成数组 局部隐藏
$collection = collection($products);
// $products =$collection->hidden(['summary']);
$products =$collection->all();
return $products;
}
}
验证器(count):
class Count extends BaseValidate
{
protected $rule =[
'count'=>'isPositiveInteger|between:1,15'
];
protected $message = [
'count'=>'count的数量不正确'
];
}
基类验证器(baseValidate)–isPositiveInteger:
//验证是否为正整数
public function isPositiveInteger($value,$rule='',$data='',$field='')
{
if (is_numeric($value) && is_int($value + 0) && ($value + 0)>0){
return true;
}else{
return false;
}
}
模型:
public static function getMostRecent($count)
{
$products =self::limit($count)
->order('create_time desc')
->select();
return $products;
}
路由:
//最近商品
Route::get('api/:version/Product/recent','api/:version.Product/getRecent');
Postman截图: