如何使用关系和一些逻辑附加列 db 结果
Posted
技术标签:
【中文标题】如何使用关系和一些逻辑附加列 db 结果【英文标题】:How to appending a column db result with relation and some logic laravel 【发布时间】:2021-07-24 13:57:16 【问题描述】:我这里有个问题,我想从关系的结果中添加一列,即百分比列,该列是pagebook / pageread * 100的结果 这是我想要的结果数据库
"id": 2,
"id_book": 2,
"id_user": 2,
"pageread": 120,
"books":
"id": 2,
"pagebook":125
"percentage":96
这是我在控制器中的代码
$book= Read::with('books.authors')->where('id_user',$user->id)->get();
这是我在模型中的代码
public function books()
return $this->belongsTo(Book::class,'id_book','id');
【问题讨论】:
查看资源:laravel.com/docs/8.x/eloquent-resources#introduction 他们允许您包含此类信息 【参考方案1】:你可以在模型中做到这一点:
class YourModel ...
protected $appends = ['percentage'];
public function getPercentageAttribute()
return /* the calculation that you need */
【讨论】:
如何将参数 book->pagebook 和 pageread 发送到 getPercentageAttribute 进行计算? @Newbie123 与您在控制器或其他任何地方所做的相同【参考方案2】: protected $appends = ['percentage'];
public function getPercentageAttribute()
$read= $this->pageread;
$book= $this->books->pagebook
return $read/$book*100
【讨论】:
以上是关于如何使用关系和一些逻辑附加列 db 结果的主要内容,如果未能解决你的问题,请参考以下文章