# 邏輯與驗證
* * * * *
上一篇中實現了后臺友情鏈接控制器研發,現在將研發對應的業務邏輯。
代碼是作者提前寫好的,邏輯代碼如下
~~~
<?php
// +---------------------------------------------------------------------+
// | OneBase | [ WE CAN DO IT JUST THINK ] |
// +---------------------------------------------------------------------+
// | Licensed | http://www.apache.org/licenses/LICENSE-2.0 ) |
// +---------------------------------------------------------------------+
// | Author | Bigotry <3162875@qq.com> |
// +---------------------------------------------------------------------+
// | Repository | https://gitee.com/Bigotry/OneBase |
// +---------------------------------------------------------------------+
namespace app\admin\logic;
/**
* 友情鏈接邏輯
*/
class Blogroll extends AdminBase
{
/**
* 獲取友情鏈接列表
*/
public function getBlogrollList($where = [], $field = true, $order = '', $paginate = 0)
{
return $this->modelBlogroll->getList($where, $field, $order, $paginate);
}
/**
* 友情鏈接信息編輯
*/
public function blogrollEdit($data = [])
{
$validate_result = $this->validateBlogroll->scene('edit')->check($data);
if (!$validate_result) : return [RESULT_ERROR, $this->validateBlogroll->getError()]; endif;
$url = url('blogrollList');
$result = $this->modelBlogroll->setInfo($data);
$handle_text = empty($data['id']) ? '新增' : '編輯';
$result && action_log($handle_text, '友情鏈接' . $handle_text . ',name:' . $data['name']);
return $result ? [RESULT_SUCCESS, '操作成功', $url] : [RESULT_ERROR, $this->modelBlogroll->getError()];
}
/**
* 獲取友情鏈接信息
*/
public function getBlogrollInfo($where = [], $field = true)
{
return $this->modelBlogroll->getInfo($where, $field);
}
/**
* 友情鏈接刪除
*/
public function blogrollDel($where = [])
{
$result = $this->modelBlogroll->deleteInfo($where);
$result && action_log('刪除', '友情鏈接刪除' . ',where:' . http_build_query($where));
return $result ? [RESULT_SUCCESS, '刪除成功'] : [RESULT_ERROR, $this->modelBlogroll->getError()];
}
}
~~~
OK 了,邏輯代碼寫完了,下面添加一個友情鏈接表,Sql如下。
~~~
-- ----------------------------
-- Table structure for `ob_blogroll`
-- ----------------------------
DROP TABLE IF EXISTS `ob_blogroll`;
CREATE TABLE `ob_blogroll` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` char(50) NOT NULL DEFAULT '' COMMENT '鏈接名稱',
`img_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '鏈接圖片封面',
`url` varchar(255) NOT NULL DEFAULT '' COMMENT '鏈接地址',
`describe` varchar(255) NOT NULL DEFAULT '' COMMENT '描述',
`sort` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '排序',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '數據狀態',
`create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '創建時間',
`update_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新時間',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='友情鏈接表';
-- ----------------------------
-- Records of ob_blogroll
-- ----------------------------
~~~
數據表也搞定了,那么下面來看看業務邏輯中的validateBlogroll如何實現。
~~~
<?php
// +---------------------------------------------------------------------+
// | OneBase | [ WE CAN DO IT JUST THINK ] |
// +---------------------------------------------------------------------+
// | Licensed | http://www.apache.org/licenses/LICENSE-2.0 ) |
// +---------------------------------------------------------------------+
// | Author | Bigotry <3162875@qq.com> |
// +---------------------------------------------------------------------+
// | Repository | https://gitee.com/Bigotry/OneBase |
// +---------------------------------------------------------------------+
namespace app\admin\validate;
/**
* 友情鏈接驗證器
*/
class Blogroll extends AdminBase
{
// 驗證規則
protected $rule = [
'name' => 'require|unique:blogroll',
'url' => 'require',
'sort' => 'require|number',
];
// 驗證提示
protected $message = [
'name.require' => '鏈接名稱不能為空',
'name.unique' => '鏈接名稱已存在',
'url.require' => '鏈接URL不能為空',
'sort.require' => '排序值不能為空',
'sort.number' => '排序值必須為數字'
];
// 應用場景
protected $scene = [
'edit' => ['name','url','sort'],
];
}
~~~
好啦,控制器-邏輯-驗證 都搞定啦。。不過不要急還沒結束呢,再來看看 最后一步 視圖 和 模型。
- 序言
- 基礎
- 安裝環境
- 安裝演示
- 規范
- 目錄
- 介紹
- 后臺介紹
- 后臺首頁
- 會員管理
- 系統管理
- 系統設置與配置管理
- 菜單管理
- 系統回收站
- 服務管理
- 插件管理
- 文章管理
- 接口管理
- 優化維護
- SEO管理
- 數據庫
- 文件清理
- 行為日志
- 執行記錄
- 統計分析
- 接口介紹
- 接口文檔
- 錯誤碼設計
- Token介紹
- 前臺介紹
- 架構
- 架構總覽
- 生命周期
- 入口文件
- 模塊設計
- 依賴注入
- 控制器架構
- 邏輯架構
- 驗證架構
- 服務架構
- 模型架構
- 行為架構
- 插件架構
- 配置
- 配置介紹
- 配置加載
- 配置擴展
- 請求
- 請求信息
- 日志
- 后臺行為日志
- 系統執行日志
- 框架日志
- 數據
- 數據庫設計
- 數據字典
- 數據庫操作
- 事務控制
- 混合操作
- 實戰
- 控制器
- 邏輯與驗證
- 視圖與模型
- 插件研發
- 服務研發
- 接口研發
- 雜項
- 數據導入導出
- 二維碼條形碼
- 郵件發送
- 云存儲服務
- 支付服務
- 短信服務
- 微信分享
- 生成海報
- 聊天室
- PJAX
- Demo
- Widget
- 附錄
- 常量參考
- 配置參考
- 函數參考
- 進階
- Redis
- 自動緩存
- 全自動緩存
- 索引
- 數據簽名
- 全自動事務
- 隊列