首页 > 解决方案 > Laravel 模型函数以字符串形式获取相关实体描述

问题描述

我有两个实体关系,其中 Order hasMany OrderItems。我正在尝试在我的 desc 函数中获取订单项目详细信息作为描述字符串,如下所示。

class Order extends Model
{
    public function items(){
        return $this->hasMany(OrderItem::class);
    }

    public function desc() : string
    {
      $items = $this->items->select("item_name, price")->get();   
      $desc='';
      foreach($items as $item){
        $desc .=implode(':',$item).', ';
      }
      return $desc;
      //return 'item_name:price, cards:50,'
    }  
}

它的投掷

“内爆():传递的参数无效”

你能帮我吗?我怎么能做到这一点?有没有更好的方法来做到这一点?

标签: phplaraveleloquent

解决方案


在您的 OrderItem 模型中使用它

public functon getDescAttribute()
{
    $value = "{$this->item_name}:{$this->price}";
    return $value;
}

这一定是最好的解决方案,$item->desc 来检索它


推荐阅读