AuthRule.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace app\admin\model;
  3. use think\Cache;
  4. use think\Model;
  5. class AuthRule extends Model
  6. {
  7. // 开启自动写入时间戳字段
  8. protected $autoWriteTimestamp = 'int';
  9. // 定义时间戳字段名
  10. protected $createTime = 'createtime';
  11. protected $updateTime = 'updatetime';
  12. // 数据自动完成字段
  13. protected $insert = ['py', 'pinyin'];
  14. protected $update = ['py', 'pinyin'];
  15. // 拼音对象
  16. protected static $pinyin = null;
  17. protected static function init()
  18. {
  19. self::$pinyin = new \Overtrue\Pinyin\Pinyin('Overtrue\Pinyin\MemoryFileDictLoader');
  20. self::beforeWrite(function ($row) {
  21. if (isset($_POST['row']) && is_array($_POST['row']) && isset($_POST['row']['condition'])) {
  22. $originRow = $_POST['row'];
  23. $row['condition'] = $originRow['condition'] ?? '';
  24. }
  25. });
  26. self::afterWrite(function ($row) {
  27. Cache::rm('__menu__');
  28. });
  29. }
  30. public function getTitleAttr($value, $data)
  31. {
  32. return __($value);
  33. }
  34. public function getMenutypeList()
  35. {
  36. return ['addtabs' => __('Addtabs'), 'dialog' => __('Dialog'), 'ajax' => __('Ajax'), 'blank' => __('Blank')];
  37. }
  38. public function setPyAttr($value, $data) {
  39. if (isset($data['title']) && $data['title']) {
  40. return self::$pinyin->abbr($data['title']);
  41. }
  42. return '';
  43. }
  44. public function setPinyinAttr($value, $data) {
  45. if (isset($data['title']) && $data['title']) {
  46. return self::$pinyin->permalink($data['title'], '');
  47. }
  48. return '';
  49. }
  50. }