Laravel Eloquent 访问器的一个坑
数据
ID | first_name | last_name |
---|---|---|
1 | Jackie | Chan |
2 | Bruce | Lee |
模型
1 |
|
正常使用
1 | Start::first()->full_name; // "Jackie Chan" |
坑
1 | Star::select(DB::raw("concat(first_name, ' ', last_name) as full_name"))->first()->full_name; // "" |
但是
1 | dump(Star::select(DB::raw("concat(first_name, ' ', last_name) as full_name"))->first()); |
结果能看到 full_name
有值
1 | // ... |
原因
- Eloquent 访问器优先级高于属性
- 该例子中访问器依赖的属性因为未指定
select
为空
如何填坑
1 | class Star extends Model |