laravel配置系统使用问题
现在有几个渠道,不想要创建数据表,怎么配置比较好?
channel
a:渠道1
b:渠道2
c:渠道3
本来一个表有用这个字段,直接在model里面定义
const A = 'a';
const B = 'b';
const C = 'c';
const CHANNEL_ARR1 = [
self::A => '渠道1',
self::B => '渠道2',
self::C => '渠道3',
];
const CHANNEL_ARR2 = [
'all' => '全部',
self::A => '渠道1',
self::B => '渠道2',
self::C => '渠道3',
];
现在多了几张表使用channel这个字段,该怎么使用配置文件配置比较好调用?
想过使用config/channel.php,感觉不是很灵活
<?php
return [
'a' => '渠道1',
'b' => '渠道2',
'c' => '渠道3',
];
求有好的方案,谢谢
本作品采用《CC 协议》,转载必须注明作者和本文链接
你的model不是会继承吗,在父类里面定义这些就行了,然后用类名调用 parent::CHANNEL_ARR1
我来理解一下楼主的需求:
楼主可以讲一下为什么觉得配置不够灵活?我觉得如果配置数据跟着每次发布来更新的话,配置数据已经足够灵活了。除非是想在发布后还继续更新渠道数据,那只能是再进行额外的存储。
另外楼主这里 CHANNEL_ARR1 和 CHANNEL_ARR2 这两个常量没有在配置数据中体现,我觉得这里可能会有些问题。
渠道配置不经常变化,做个枚举类就好了,php8.1版本引入枚举类,不想封装可以找个枚举类composer包就好了,好多都支持语言翻译和一些快捷方法,拿来开箱即用就好了。
例如这个包,Laravel Enum
你的意思是多个 Model 共用相同的 channel字段? trait 就行,把共用属性写进 trait