【问题标题】:Accessor not working in Laravel 5.4访问器在 Laravel 5.4 中不起作用
【发布时间】:2017-05-29 10:19:12
【问题描述】:

我是 Laravel 5.4 的新手,目前正在从事 Laravel 上的小项目。根据我的客户要求,我使用违反 Laravel 命名约定的 CamelCase 标准重命名了一些表列。

例如,我的表“A”有“状态”和“名字”列,而不是“状态”和“名字”。

现在,我在模型文件中使用访问器通过创建下面给出的函数来修改这些列的值:

public function getStatusAttribute($val) {  
   reutrn $val . ' Status';  
}  

public function getFirstNameAttribute($val) {  
   return 'User is '.$val;  
}  

当我使用 elequent 进程获取数据时,系统会将这些值返回为空白。

如果我根据“Laravel 命名约定”重命名列名,那么它会给我正确的结果。

我不知道这里的确切问题是什么。请任何人都可以分享您的解决方案来解决此问题吗?

【问题讨论】:

标签: laravel laravel-5.4


【解决方案1】:

直接访问字段。

public function getStatusAttribute()
{
    return $this->Status . ' Status';
}

public function getFirstNameAttribute()
{
    return 'User is ' . $this->FirstName;
}

将此添加到模型中以每次都附加这些字段。

protected $appends = [
    'status', 'first_name',
];

【讨论】:

  • 嗨。问题是这些函数没有被 laravel 调用。
  • @Dhirender 更新了我的答案。您需要为 laravel 设置 $appends 属性以在每个结果上自动添加这些字段。
猜你喜欢
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多