-
-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Labels
bugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or request
Description
The canUseFeature
method is returning the first record in the database instead of filtering based on the slug
. This is because the query is being applied to a fresh instance of the model that hasn't been properly utilized to build the query before first()
is called in the function below in the SubscriptionUsage.php
class
public function scopeByFeatureSlug(Builder $builder, string $featureSlug): Builder
{
$model = config('laravel-subscriptions.models.feature', Feature::class);
$feature = tap(new $model())->where('slug', $featureSlug)->first();
return $builder->where('feature_id', $feature ? $feature->getKey() : null);
}
The tap(new $model())
simply returns the model instance itself. The where('slug', $featureSlug)
method is then called, but since first()
is immediately called on this query, it ends up executing the query before any further conditions are applied.
Instead of using tap()
, you should directly chain the query methods on the model instance:
$feature = $model::where('slug', $featureSlug)->first();
ashik-aufaitux, degiurgiu and jesus-adame
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or request