Comments (2)
Well, after some extensive investigation, I could not find what's causing lots of N+1 when using Traits\HasRoleAndPermission->getRoles() after PR #171. For now I'll just accept the fact my code skills are rust or my knowledge is not up to a better solution (or both).
As a workaround, I'm now just overriding getRoles()
in the user model like this...
namespace App\Models;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Foundation\Auth\User as Authenticatable;
use jeremykenedy\LaravelRoles\Traits\HasRoleAndPermission;
class User extends Authenticatable
{
use HasRoleAndPermission;
...
/**
* Overrides jeremykenedy\LaravelRoles\Traits\HasRoleAndPermission->getRoles()
* to avoid N+1 introduced by PR #171.
*
* @see https://github.com/jeremykenedy/laravel-roles/issues/179
* @see https://github.com/jeremykenedy/laravel-roles/pull/171
*
* @return Collection|null
*/
public function getRoles(): ?Collection
{
return ! $this->roles ? $this->roles = $this->roles()->get() : $this->roles;
}
}
...then N+1 are gone. That WFM now.
As I couldn't find the root causes in the package or in my code, I'll just leave this issue opened so others may have a reference and maybe provide a better solution.
from laravel-roles.
I believe this was solved in a recent update. If it occurs again please let me know and I will re-open the issue. Thank you
from laravel-roles.
Related Issues (20)
- Integrating in a existing app HOT 1
- .... HOT 2
- 403 error in all requests HOT 1
- Please add Laravel 9 support HOT 3
- High memory usage and Crashes when there are a few thousand users HOT 2
- Not publishing controllers and laravelrole view folder HOT 2
- Spanish translation HOT 1
- Incorrect SQL syntax when used with SQLServer
- included dependency of eklundkristoffer/seedster breaks default artisan db:seed command
- GUI - Undefined variable $slot HOT 3
- Can't install the package in Laravel 10 HOT 3
- Upgrade to Laravel 10 fails HOT 2
- Upgrade to Laravel 10 fails HOT 2
- How to show GUI HOT 1
- How to customize permission table? HOT 2
- SQL error when trying to attach role - Insert value list does not match column list HOT 1
- "Undefined variable $slot" error is encountered when trying to access the GUI (/roles) HOT 3
- Can not create role or permission from GUI, Laravel 10.45, PHP 8.2
- Scrutinizer vs Styleci pull request #206 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from laravel-roles.