如何解决Laravel-从4个表导出关系以显示在nova字段中
使用nova字段时,我可以传递将出现的关于某些资源的属性数组,以便我可以查看或编辑。主要是这样的:
public function fields(Request $request)
{
return [
ID::make()->sortable(),Text::make('Name')->rules([
'required','max:255'
]),BelongsToMany::make('Customers'),}
当前问题是我有一个相当复杂的关系,其中包括4个表。 表格是:
customers -> id
orders -> id,customer_id
marketing_discount_code -> id
customer_marketing_discount_code -> id,customer_id,marketing_discount_code_id
我要在仪表板上显示的是已应用某些折扣代码的订单。我使用SQL查询实现了以下目的:
select * from `orders` inner join `customers` on `orders`.`customer_id` = `customers`.`id`
inner join `customer_marketing_discount_code` on `customers`.`id` = `customer_marketing_discount_code`.`customer_id`
我目前面临的是如何使用nova fields
在仪表板上显示此类输出?通常的方法是RelationShip::('method')
。
我有以下关系
class Customer {
public function orders()
{
return $this->hasMany('App\Order');
}
public function marketingDiscountCode()
{
return $this->belongsToMany(MarketingDiscountCode::class,'customer_marketing_discount_code');
}
}
class MarketingDiscountCode {
public function customers()
{
return $this->belongsToMany(Customer::class,'customer_marketing_discount_code');
}
}
如何在orders
中添加MarketingDiscountCode
方法来获取已应用某些折扣代码的所有订单?与前面提到的查询相同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。