本文整理汇总了PHP中Core\Helper\Utility\Validator类的典型用法代码示例。如果您正苦于以下问题:PHP Validator类的具体用法?PHP Validator怎么用?PHP Validator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Validator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: get
public function get($f3)
{
global $smarty;
// 首先做参数合法性验证
$validator = new Validator($f3->get('GET'));
$goods_id = $validator->required('商品id不能为空')->digits('商品id非法')->min(1, true, '商品id非法')->validate('goods_id');
$pageNo = $validator->digits()->min(0)->validate('pageNo');
if (!$this->validate($validator)) {
goto out_fail;
}
// 生成 smarty 的缓存 id
$smartyCacheId = 'Goods|' . $goods_id . '|AjaxGoodsComment_' . $pageNo;
// 开启并设置 smarty 缓存时间
enableSmartyCache(true, bzf_get_option_value('smarty_cache_time_goods_view'));
if ($smarty->isCached('ajax_goodscomment.tpl', $smartyCacheId)) {
goto out_display;
}
$this->preparePage($goods_id, $pageNo);
out_display:
$f3->expire(600);
// 让客户端缓存 10 分钟
$smarty->display('ajax_goodscomment.tpl', $smartyCacheId);
return;
out_fail:
// output nothing
return;
}
示例2: ListAttrItem
public function ListAttrItem($f3)
{
// 参数验证
$validator = new Validator($f3->get('GET'));
$meta_id = $validator->required()->digits()->min(1)->validate('typeId');
$errorMessage = '';
if (!$this->validate($validator)) {
$errorMessage = implode('|', $this->flashMessageArray);
goto out_fail;
}
// 检查缓存
$cacheKey = md5(__FILE__ . '\\' . __METHOD__ . '\\' . $meta_id);
$attrItemArray = $f3->get($cacheKey);
if (!empty($attrItemArray)) {
goto out;
}
$goodsTypeService = new GoodsTypeService();
$attrItemArray = $goodsTypeService->fetchGoodsTypeAttrItemArray($meta_id);
$f3->set($cacheKey, $attrItemArray, 300);
//缓存 5 分钟
out:
$f3->expire(60);
// 客户端缓存 1 分钟
Ajax::header();
echo Ajax::buildResult(null, null, $attrItemArray);
return;
out_fail:
Ajax::header();
echo Ajax::buildResult(-1, $errorMessage, null);
}
示例3: getRequestUrl
public function getRequestUrl($orderId, $returnUrl, $notifyUrl)
{
// 参数验证
$validator = new Validator(array('orderId' => $orderId, 'returnUrl' => $returnUrl, 'notifyUrl' => $notifyUrl));
$orderId = $validator->required()->digits()->min(1)->validate('orderId');
$returnUrl = $validator->required()->validate('returnUrl');
$notifyUrl = $validator->required()->validate('notifyUrl');
$this->validate($validator);
//设置订单 ID
$this->orderId = $orderId;
// 取得订单
$orderBasicService = new OrderBasicService();
$orderInfo = $orderBasicService->loadOrderInfoById($orderId);
if (empty($orderInfo) || $orderInfo->isEmpty()) {
throw new \InvalidArgumentException('invalid order_id [' . $orderId . ']');
}
$desc = $orderInfo['order_id'] . '|' . Money::toSmartyDisplay($orderInfo['order_amount']) . '|' . $orderInfo['system_id'] . '|WAP';
// 构造要请求的参数数组,无需改动
$parameterCreate = array("req_data" => '<direct_trade_create_req><subject>' . $desc . '</subject><out_trade_no>' . $orderInfo['order_sn'] . '_' . $orderInfo['order_id'] . '</out_trade_no><total_fee>' . Money::toDisplay($orderInfo['order_amount'], 2) . "</total_fee><seller_account_name>" . $this->account . "</seller_account_name><notify_url>" . $notifyUrl . "</notify_url><out_user>" . $orderInfo['user_id'] . "</out_user><merchant_url></merchant_url>" . "<call_back_url>" . $returnUrl . "</call_back_url></direct_trade_create_req>", "service" => $this->configServiceCreate, "sec_id" => $this->configSecId, "partner" => $this->partnerId, "req_id" => date("Ymdhms"), "format" => $this->configFormat, "v" => $this->configVersion);
// 首先申请 Token
$result = $this->callAlipayWapGateway($this->buildRequestLinkData($parameterCreate));
// 调用GetToken方法,并返回token
$token = $this->getToken($result);
if (!$token) {
printLog($this->getGatewayType() . ' 获取 token 失败');
return null;
}
// 构造要请求的参数数组,无需改动
$parameterExecute = array("req_data" => "<auth_and_execute_req><request_token>" . $token . "</request_token></auth_and_execute_req>", "service" => $this->configServiceExecute, "sec_id" => $this->configSecId, "partner" => $this->partnerId, "call_back_url" => $returnUrl, "format" => $this->configFormat, "v" => $this->configVersion);
return $this->configGateway . $this->buildRequestLinkData($parameterExecute);
}
示例4: GalleryThumb
/**
* 根据 goods_id 得到一个商品的图片集
*
* @param $f3
*/
public function GalleryThumb($f3)
{
// 参数验证
$validator = new Validator($f3->get('GET'));
$errorMessage = '';
$goods_id = $validator->required()->digits()->min(1)->filter('ValidatorIntValue')->validate('goods_id');
if (!$this->validate($validator)) {
$errorMessage = implode('|', $this->flashMessageArray);
goto out_fail;
}
$goodsGalleryService = new GoodsGalleryService();
$galleryArray = $goodsGalleryService->fetchGoodsGalleryArrayByGoodsId($goods_id);
$thumImageList = array();
foreach ($galleryArray as $galleryItem) {
$thumImageList[] = array('img_id' => $galleryItem['img_id'], 'thumb_url' => RouteHelper::makeImageUrl($galleryItem['thumb_url']));
}
out:
Ajax::header();
echo Ajax::buildResult(null, null, $thumImageList);
return;
out_fail:
// 失败,返回出错信息
Ajax::header();
echo Ajax::buildResult(-1, $errorMessage, null);
}
示例5: countGoodsLogArray
public function countGoodsLogArray($goods_id, $ttl = 0)
{
// 参数验证
$validator = new Validator(array('goods_id' => $goods_id));
$goods_id = $validator->required()->digits()->min(1)->validate('goods_id');
$this->validate($validator);
return $this->_countArray('goods_log', array(array('goods_id = ?', $goods_id)), null, $ttl);
}
示例6: loadGoodsAttrGroupByName
/**
* 根据组名取得商品属性组
*
* @param string $groupName
*
* @return \Core\Modal\SqlMapper
*/
public function loadGoodsAttrGroupByName($groupName)
{
// 参数验证
$validator = new Validator(array('groupName' => $groupName));
$groupName = $validator->required()->validate('groupName');
$this->validate($validator);
return $this->loadMetaByTypeAndName(GoodsAttrGroup::META_TYPE, $groupName);
}
示例7: countOrderSettleArray
/**
*
* 取得一组记录的数目,用于分页
*
* @return int 查询条数
*
* @param array $condArray 查询条件数组,例如:
* array(
* array('supplier_id = ?', $supplier_id)
* array('is_on_sale = ?', 1)
* array('create_time > ? or create_time < ?', $timeMin, $timeMax)
* )
*
* @param int $ttl 缓存多少时间
*
*/
public function countOrderSettleArray(array $condArray, $ttl = 0)
{
// 参数验证
$validator = new Validator(array('condArray' => $condArray), '');
$condArray = $validator->requireArray(true)->validate('condArray');
$this->validate($validator);
return $this->_countArray('order_settle', $condArray, null, $ttl);
}
示例8: ListChildTreeNodeAllStr
public function ListChildTreeNodeAllStr($f3)
{
// 参数验证
$validator = new Validator($f3->get('GET'));
$errorMessage = '';
$treeKey = $validator->required()->validate('treeKey');
$parentId = $validator->digits()->min(0)->validate('parentId');
$parentId = $parentId ?: 0;
// 用户也可以通过 treeNodeName 来做查询
$treeNodeName = $validator->validate('treeNodeName');
if (!$this->validate($validator)) {
$errorMessage = implode('|', $this->flashMessageArray);
goto out_fail;
}
// 检查缓存
$cacheKey = md5(__NAMESPACE__ . '\\' . __CLASS__ . '\\' . __METHOD__ . '\\' . $treeKey . '\\' . $parentId . '\\' . $treeNodeName);
$outputArray = $f3->get($cacheKey);
if (!empty($outputArray)) {
goto out;
}
$metaTreeService = new MetaTreeService();
if (!empty($treeNodeName)) {
$treeNode = $metaTreeService->loadTreeNodeWithTreeKeyAndName($treeKey, $treeNodeName);
if (!$treeNode->isEmpty()) {
$parentId = $treeNode['meta_id'];
}
}
// 取得树形的层级结构
$treeNodeArray = $metaTreeService->fetchChildTreeNodeArrayAll($treeKey, $parentId);
// 构建显示输出
$outputArray = array();
function buildHierarchyArray(&$outputArray, $treeNodeArray, $separator = '')
{
$hierarchySeparator = '---------->';
foreach ($treeNodeArray as $treeNodeItem) {
$outputItem = array();
$outputItem['meta_id'] = $treeNodeItem['meta_id'];
$outputItem['meta_name'] = $treeNodeItem['meta_name'];
$outputItem['display_text'] = $separator . $treeNodeItem['meta_name'];
$outputArray[] = $outputItem;
// 有子节点,递归建立子节点
if (isset($treeNodeItem['child_list'])) {
buildHierarchyArray($outputArray, $treeNodeItem['child_list'], $separator . $hierarchySeparator);
}
}
}
buildHierarchyArray($outputArray, $treeNodeArray, '');
$f3->set($cacheKey, $outputArray, 600);
//缓存 10 分钟
out:
Ajax::header();
echo Ajax::buildResult(null, null, $outputArray);
return;
out_fail:
// 失败,返回出错信息
Ajax::header();
echo Ajax::buildResult(-1, $errorMessage, null);
}
示例9: get
public function get($f3)
{
global $smarty;
// 首先做参数合法性验证
$validator = new Validator($f3->get('GET'));
$goods_id = $validator->required('商品id不能为空')->digits('商品id非法')->min(1, true, '商品id非法')->validate('goods_id');
if (!$this->validate($validator)) {
goto out_fail;
}
// 生成 smarty 的缓存 id
$smartyCacheId = 'Goods|' . $goods_id . '|View';
// 开启并设置 smarty 缓存时间
enableSmartyCache(true, MobileThemePlugin::getOptionValue('smarty_cache_time_goods_view'));
// 缓存页面
if ($smarty->isCached('goods_view.tpl', $smartyCacheId)) {
goto out_display;
}
// 查询商品信息
$goodsBasicService = new GoodsBasicService();
$goodsInfo = $goodsBasicService->loadGoodsById($goods_id);
// 商品不存在,退出
if ($goodsInfo->isEmpty() || !Utils::isTagExist(PluginHelper::SYSTEM_MOBILE, $goodsInfo['system_tag_list'])) {
$this->addFlashMessage('商品 [' . $goods_id . '] 不存在');
goto out_fail;
}
// 取商品推广信息设置
$goodsPromote = $goodsBasicService->loadGoodsPromoteByGoodsId($goods_id);
// 取商品图片集
$goodsGalleryArray = GoodsGalleryCache::getGoodsGallery($goods_id);
foreach ($goodsGalleryArray as &$galleryItem) {
$galleryItem['img_url'] = RouteHelper::makeImageUrl($galleryItem['img_url']);
$galleryItem['thumb_url'] = RouteHelper::makeImageUrl($galleryItem['thumb_url']);
}
unset($galleryItem);
// 设置商品页面的 SEO 信息
$smarty->assign('seo_title', $goodsInfo['seo_title'] . ',' . $f3->get('sysConfig[site_name]'));
$smarty->assign('seo_description', $goodsInfo['seo_description']);
$smarty->assign('seo_keywords', $goodsInfo['seo_keyword']);
// 给模板赋值
$smarty->assign('goodsInfo', $goodsInfo);
$smarty->assign('goodsPromote', $goodsPromote);
if (!Utils::isEmpty($goodsGalleryArray)) {
$smarty->assign('goodsGalleryArray', $goodsGalleryArray);
}
// 设置商品规格
if (!empty($goodsInfo['goods_spec'])) {
$goodsSpecService = new GoodsSpecService();
$goodsSpecService->initWithJson($goodsInfo['goods_spec']);
$smarty->assign('goodsSpec', $goodsSpecService->getGoodsSpecDataArray());
}
out_display:
$smarty->display('goods_view.tpl', $smartyCacheId);
return;
out_fail:
// 失败从这里返回
RouteHelper::reRoute($this, '/');
// 返回首页
}
示例10: countSupplierGoodsArray
/**
* 取得供货商下面商品的总数,用于分页显示
*
* @return int 商品总数
*
* @param int $suppliers_id 供货商的ID
* @param int $ttl 缓存时间
*/
public function countSupplierGoodsArray($suppliers_id, $ttl = 0)
{
// 参数验证
$validator = new Validator(array('suppliers_id' => $suppliers_id, 'ttl' => $ttl));
$suppliers_id = $validator->required()->digits()->min(1)->validate('suppliers_id');
$ttl = $validator->digits()->min(0)->validate('ttl');
$this->validate($validator);
return $this->_countArray('goods', array(array('suppliers_id = ? AND is_delete = 0 AND is_on_sale = 1 AND is_alone_sale = 1', $suppliers_id)), null, $ttl);
}
示例11: post
public function post($f3)
{
global $smarty;
// 首先做参数合法性验证
$validator = new Validator($f3->get('POST'));
$input = array();
$input['user_name'] = $validator->required('用户名不能为空')->validate('user_name');
$input['password'] = $validator->required('密码不能为空')->validate('password');
$p_captcha = $validator->required('验证码不能为空')->validate('captcha');
if (!$this->validate($validator)) {
goto out_fail;
}
// 检查验证码是否有效
$captchaController = new \Controller\Image\Captcha();
if (!$captchaController->validateCaptcha($p_captcha)) {
$this->addFlashMessage("验证码错误");
goto out_fail;
}
$adminService = new AdminUserService();
// 验证用户登陆
$admin = $adminService->doAuthAdmin($input['user_name'], $input['user_name'], $input['password']);
if (!$admin) {
$this->addFlashMessage("登陆失败,用户名、密码错误");
goto out_fail;
}
// 记录用户的登陆信息
$adminUserInfo = $admin->toArray();
unset($adminUserInfo['password']);
// 不要记录密码
// 取得用户的角色权限
$adminUserInfo['role_action_list'] = '';
if ($adminUserInfo['role_id'] > 0) {
$metaRoleService = new MetaRoleService();
$role = $metaRoleService->loadRoleById($adminUserInfo['role_id']);
if (!$role->isEmpty()) {
// 赋值角色权限
$adminUserInfo['role_action_list'] = $role['meta_data'];
}
}
AuthHelper::saveAuthUser($adminUserInfo);
try {
// 记录用户登录日志
AdminLog::logAdminOperate('user.login', '用户登录', 'IP:' . $f3->get('IP'));
} catch (\Exception $e) {
// do nothing
}
$this->addFlashMessage("登陆成功");
// 跳转到用户之前看的页面,如果之前没有看过的页面那就回到首页
RouteHelper::jumpBack($this, '/', true);
return;
// 这里正常返回
out_fail:
// 失败从这里入口
$smarty->display('user_login.tpl', 'User|Login|post');
}
示例12: fetchGoodsGalleryArrayByGoodsIdArray
/**
* 给出一组商品 ID,取得所有商品的图片,
* 这是一个大查询,可能会很多数据,之所以加这个大查询的目的是,
* 我们宁可要一个几百条记录的大查询,也不要几百个一条记录的小查询
*
* @return array 图像集合 array(array(图片1), array(图片2))
*
* @param array $goodsIdArray 商品的 ID 数组
* @param int $ttl 缓存时间
*/
public function fetchGoodsGalleryArrayByGoodsIdArray(array $goodsIdArray, $ttl = 0)
{
if (!is_array($goodsIdArray) || empty($goodsIdArray)) {
throw new \InvalidArgumentException('goodsIdArray must be an array not empty');
}
// 参数验证
$validator = new Validator(array('ttl' => $ttl));
$ttl = $validator->digits()->min(0)->validate('ttl');
$this->validate($validator);
$dataMapper = new DataMapper('goods_gallery');
$sqlInClause = QueryBuilder::buildInCondition('goods_id', $goodsIdArray, \PDO::PARAM_INT);
return $dataMapper->find(array($sqlInClause), array('order' => 'goods_id asc , img_sort_order desc, img_id asc'), $ttl);
}
示例13: isOrderGoodsCommentExist
/**
* 检查 order_goods 对应的评论记录是否已经存在
*
* @param int $rec_id
*
* @return bool
*/
public function isOrderGoodsCommentExist($rec_id)
{
if (!$rec_id) {
return false;
}
// 参数验证
$validator = new Validator(array('rec_id' => $rec_id));
$rec_id = $validator->required()->digits()->min(1)->validate('rec_id');
$this->validate($validator);
$dataMapper = new DataMapper('goods_comment');
$dataMapper->loadOne(array('rec_id = ?', $rec_id), null, 0);
return !$dataMapper->isEmpty();
}
示例14: validate
/**
* 验证是否有失败的 validate,失败的 validate 对应的消息会自动被添加到 flash message 中
*
* @return boolean
*
* @param object $validator validator 对象
* */
protected function validate(Validator $validator)
{
$hasError = $validator->hasErrors();
if (!$hasError) {
// 没有错误,成功返回
return true;
}
// 有错误,把错误消息放入到 flash Message 中
$errorArray = $validator->getAllErrors();
foreach ($errorArray as $errorField => $errorMsg) {
$this->addFlashMessage($errorMsg);
}
return false;
}
示例15: getRequestUrl
public function getRequestUrl($orderId, $returnUrl, $notifyUrl)
{
// 参数验证
$validator = new Validator(array('orderId' => $orderId, 'returnUrl' => $returnUrl));
$orderId = $validator->required()->digits()->min(1)->validate('orderId');
$returnUrl = $validator->required()->validate('returnUrl');
$this->validate($validator);
$this->orderId = $orderId;
//设置订单 ID
// 自己调用 notify 完成订单支付
$this->doNotifyUrl(null);
return $returnUrl . '?order_id=' . $orderId;
//返回 returnUrl
}