Laravel-从4个表中导出关系,以显示在nova字段中
使用nova字段时,我可以传递一组属性,这些属性将显示在特定资源上,以便查看或编辑。主要是这样的:Laravel-从4个表中导出关系,以显示在nova字段中,laravel,eloquent,laravel-nova,eloquent-relationship,Laravel,Eloquent,Laravel Nova,Eloquent Relationship,使用nova字段时,我可以传递一组属性,这些属性将显示在特定资源上,以便查看或编辑。主要是这样的: public function fields(Request $request) { return [ ID::make()->sortable(), Text::make('Name')->rules([ 'required', 'max:255' ]),
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`
我目前面临的是ti如何使用nova字段在仪表板中显示此类输出?通常的方法是关系::('method')
我有以下关系
class Customer {
public function orders()
{
return $this->hasMany('App\Order');
}
public function marketingDiscountCode()
{
return $this->belongsToMany(MarketingDiscountCode::class, 'customer_marketing_discount_code');
}
}
如何在MarketingDiscountCode
中添加orders
方法来获取应用了特定折扣代码的所有订单?与前面提到的查询相同
class MarketingDiscountCode {
public function customers()
{
return $this->belongsToMany(Customer::class, 'customer_marketing_discount_code');
}
}