我有模型 User
,里面有一个名为 title
的字段。
现在我想定义所有可能的标题。例如一个数组
['0' => '先生', '1' => '女士']
定义这些的正确方法是什么。
我的想法是在 中创建
模型并在需要时将数组调用为 public function titles() { return ['0' => 'Mr.', '1' => 'Ms.'];
User.php$user->titles()
。然而,这让我有点紧张,因为我正在调用模型实例上的函数。
我真的不认为需要在这里创建关系,因为可能的标题不超过十个。
有没有更好/正确的方法来做这些事情。我不是 Laravel 的新手,但我是 self 思考的,所以我正在尝试检查我在这里做事的方式。
我需要稍微了解一下这些 oop 基础知识,这样这里的任何指示都会有所帮助。
提前致谢。
最佳答案
一种方法是将标题保存在配置文件中,例如:
'titles' => [
1 => 'Mr.',
2 => 'Mrs.'
....
],
好处是:
- 您可以随时编辑此信息(将数据硬编码到模型类中是一种不好的做法)
- 您可以按原样使用此列表进行
选择
列表构建 - 您可以通过保留标题 ID 将数据保留为
TINYINT
,有时这是一个好处
要构建选择列表,请执行以下操作:
{!! Form::select('titles', config('custom_config.titles'), 1) !!}
关于php - Laravel (OOP),模型特定值数组(例如用户头衔),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39193083/