在Laravel中为选择框放置数据的位置?

时间:2015-10-30 06:22:58

标签: php laravel laravel-5 laravel-5.1

如果我在数据库中有这样的表:

users
    id
    username
    status

和状态可以是:

状态     0 - 不活跃     1 - 活跃     2 - 被禁止

我应该在哪里放置状态,我有一些可能性:

  1. 在用户的存储库模式中
  2. 用户Eloquent类中的
  3. in helpers
  4. 在数据库中(有时我会为此创建50个表,我认为这不是个好主意)
  5. 在控制器构造函数中
  6. 并像“View :: share('select',$ usersStatuses)”一样分享它;“我认为这不是一个干净而优雅的解决方案。
  7. 编辑:

    {!! Form :: select('status',user_statuses(),@ $ user-> status,array('class'=>'form-control'))!!}

    查看函数“user_statuses()”这应该在何处以及如何获取数据?

2 个答案:

答案 0 :(得分:0)

我建议2,并且像这样

class User extends Model
{
    const STATUS_BANNED= 2;
    const STATUS_INACTIVE = -1;
    const STATUS_ACTIVE = 1;
}

模型访问属性,如User :: STATUS_ACTIVE,很明显。

答案 1 :(得分:0)

好的,我现在明白了。恕我直言,最好的方法是带有静态函数的helper类,用于获取用户状态。

Class UserHelper
{
    public static function getStatuses() { 
        return [
              0 => not_active, 
              1 => active,
              2 => banned
        ];
    }
}

UserHelper::getStatuses();

优点:

  • 您不需要初始化用户对象来获取状态。
  • 您也可以在Controller和View中使用它。