[Bug]: Relationship not working if we have multiple relationship with same table
MalikUmair001 opened this issue · 7 comments
What happened?
public function seller()
{
return $this->belongsTo(User::class, 'seller_id')->withTrashed();
}
/**
* Get order items
*
* @return object
*/
public function items()
{
return $this->hasMany(OrderItem::class, 'order_id');
}
Column::make("Buyer", "buyer.email")
// ->view('datatable.views.orders.table-order-buyer')
->sortable(),
Column::make("Seller", "seller.email")
// ->view('datatable.views.orders.table-order-seller')
->sortable(),
It returns same value for both columns
How to reproduce the bug
public function seller()
{
return $this->belongsTo(User::class, 'seller_id')->withTrashed();
}
/**
* Get order items
*
* @return object
*/
public function items()
{
return $this->hasMany(OrderItem::class, 'order_id');
}
Column::make("Buyer", "buyer.email")
// ->view('datatable.views.orders.table-order-buyer')
->sortable(),
Column::make("Seller", "seller.email")
// ->view('datatable.views.orders.table-order-seller')
->sortable(),
It returns same value for both columns
Package Version
No response
PHP Version
None
Laravel Version
No response
Alpine Version
No response
Theme
None
Notes
No response
Error Message
No response
/**
* Get buyer
*
* @return object
*/
public function buyer()
{
return $this->belongsTo(User::class, 'buyer_id')->withTrashed();
}
/**
* Get seller
*
* @return object
*/
public function seller()
{
return $this->belongsTo(User::class, 'seller_id')->withTrashed();
}
So I suspect it's due to how the package creates the joins dynamically.
Please confirm which version of the Tables Package, Laravel, Livewire you're using
Can you please also share:
- The full code for your Table Component
- The relevant elements from the Model that is being used in the Table as the "primary model", (i.e. the relationships)
Please wrap it in the script tags (three ` marks)
I can then try to replicate it on my end and give you some options, or fix any bugs.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Need the aforementioned to be able to offer guidance on this one...
Noting that something as simple (assuming a "Sales" model, and a "buyer_id", and "seller_id") with a belongsTo relation for "seller" and "buyer" will work smoothly:
public function columns(): array
{
return [
Column::make('Seller', 'seller.name')->sortable(),
Column::make('Buyer', 'buyer.name')->sortable(),
Column::make('Stuff', 'stuff')->sortable(),
];
}
I think the problem here is likely how you've structured your table to be honest.
Make sure that you select the most appropriate model to base your table on.
E.g.
If you want to display Sale Items (with a buyer/seller), then base it on Sale Items, don't base it on Sales.