php - Laravel (OOP),模型特定值数组(例如用户头衔)

标签 php laravel oop

我有模型 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/

相关文章:

php - 如何排除特定域的 CSRF token ?

php - 使用构造函数分配属性值和在类声明中分配属性有什么区别?

Laravel 5 个页面上的多个分页

ios - 什么时候在 Objective-C 中使用 self?

php - 在这种情况下是使用接口(interface)还是抽象类更好?

php - fatal error : Cannot call constructor in HtmlHelper. php (CakePHP)

php - 使用 TINYMCE 的 JUST BOIL ME 插件时出现路径错误 -- php

javascript - 将我的网站转换为使用 Angular JS

Laravel 使用 .htaccess 强制 HTTPS 使用 Amazon ELB 重定向太多

laravel - 在 Laravel artisan 命令中使用详细信息