我有一个表(比如myreferencetable)的名字列表是..比如:

id    |    name   |   abbrv
- - - - - - - - - - - - - - - - -
1     | ABCDEF    | abc
2     | TestState |
3     | UVWXYZ    | xyz

在我的模型中,我为模型创建了一个属性:
protected $appends = [
        'full_name'
    ];

现在,
我想查询数据库以便获得以下详细信息:
[
 {
   "name" : ABCDEF
   "full_name" : ABCDEF (abc)
 },
 {
   "name" : TestState,
   "full_name" : TestState
 },
 {
   "name" : UVWXYZ,
   "full_name" : UVWXYZ (xyz)
 }
]

即字符串的连接:
//必须
()//如果不为空
现在,我的问题是:
public function getFullNameAttribute()
    {

        return  MyReferenceTable::select(DB::raw('concat(name," (", abbrv, ")")'));
    }

但它又回来了:
[
 {
   "name" : ABCDEF
   "full_name" : {}
 },
 {
   "name" : TestState,
   "full_name" : {}
 },
 {
   "name" : UVWXYZ(xyz)
   "full_name" : {}
 }
]

我需要返回name+[“(abbrv)”]//where[value]=如果不为空

最佳答案

试试这个方法

public function getFullNameAttribute()
{
    return $this->name . ($this->abbrv ? ' (' . $this->abbrv . ')' : '');
}

10-05 19:29