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 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 12
Junwind

你的 model 不是会继承吗,在父类里面定义这些就行了,然后用类名调用 parent::CHANNEL_ARR1

1年前 评论
可爱多 (楼主) 1年前
slowlyo 1年前
sanders

我来理解一下楼主的需求:

想实现多渠道数据加载,渠道数据有英文标识和中文名称,英文标识为枚举值。

楼主可以讲一下为什么觉得配置不够灵活?我觉得如果配置数据跟着每次发布来更新的话,配置数据已经足够灵活了。除非是想在发布后还继续更新渠道数据,那只能是再进行额外的存储。

另外楼主这里 CHANNEL_ARR1 和 CHANNEL_ARR2 这两个常量没有在配置数据中体现,我觉得这里可能会有些问题。

1年前 评论
可爱多 (楼主) 1年前
sanders (作者) 1年前
可爱多 (楼主) 1年前
sanders (作者) 1年前
可爱多 (楼主) 1年前

渠道配置不经常变化,做个枚举类就好了,php8.1 版本引入枚举类,不想封装可以找个枚举类 composer 包就好了,好多都支持语言翻译和一些快捷方法,拿来开箱即用就好了。

例如这个包,Laravel Enum

1年前 评论
可爱多 (楼主) 1年前

你的意思是多个 Model 共用相同的 channel 字段? trait 就行,把共用属性写进 trait

1年前 评论