-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make relationship methods public [Feature Request] #2555
Comments
What protected methods do you need to make public? |
Sorry that wasn't clear, yes it is |
Embedded relation needs a complete rewrite after that it'll be made public possibly until that it won't be touched. |
I opened #2588 to make this methods public. |
Are you looking for this? use App\Models\Order;
use App\Models\Customer;
Order::resolveRelationUsing('customer', function (Order $orderModel) {
return $orderModel->belongsTo(Customer::class, 'customer_id');
}); Ref: https://laravel.com/docs/10.x/eloquent-relationships#dynamic-relationships |
Is your feature request related to a problem?
When trying to insert relationships into models via a service provider, it is not possible because the mongo specific methods are protected. Laravel has these methods public for this reason.
Describe the solution you'd like
Swap out protected for public methods
Describe alternatives you've considered
Other than forking the package I don't see a work around.
I could create a public method on the target model which then returns the protected on, however this feels rather hacky and creates requirements on a third party package.
Additional context
Inserting a relationship via the service provider is not the most well documented features, but it is usefully for being able to decouple packages and works as follows:
The text was updated successfully, but these errors were encountered: