소스 검색

模型定义拼音自动完成字段

Henry 3 년 전
부모
커밋
a5eb7ef3b7
1개의 변경된 파일20개의 추가작업 그리고 0개의 파일을 삭제
  1. 20 0
      application/admin/model/AuthRule.php

+ 20 - 0
application/admin/model/AuthRule.php

@@ -13,9 +13,16 @@ class AuthRule extends Model
     // 定义时间戳字段名
     protected $createTime = 'createtime';
     protected $updateTime = 'updatetime';
+    // 数据自动完成字段
+    protected $insert = ['py', 'pinyin'];
+    protected $update = ['py', 'pinyin'];
+    // 拼音对象
+    protected static $pinyin = null;
 
     protected static function init()
     {
+        self::$pinyin = new \Overtrue\Pinyin\Pinyin('Overtrue\Pinyin\MemoryFileDictLoader');
+
         self::beforeWrite(function ($row) {
             if (isset($_POST['row']) && is_array($_POST['row']) && isset($_POST['row']['condition'])) {
                 $originRow = $_POST['row'];
@@ -37,4 +44,17 @@ class AuthRule extends Model
         return ['addtabs' => __('Addtabs'), 'dialog' => __('Dialog'), 'ajax' => __('Ajax'), 'blank' => __('Blank')];
     }
 
+    public function setPyAttr($value, $data) {
+        if (isset($data['title']) && $data['title']) {
+            return self::$pinyin->abbr($data['title']);
+        }
+        return '';
+    }
+
+    public function setPinyinAttr($value, $data) {
+        if (isset($data['title']) && $data['title']) {
+            return self::$pinyin->permalink($data['title'], '');
+        }
+        return '';
+    }
 }