Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

325
Views
¿Qué causa este error del generador de consultas en mi aplicación Laravel 8?

Estoy trabajando en una aplicación Laravel 8 con usuarios, roles y permisos.

Intento obtener la lista de permisos del usuario actual.

En app\Models\Permission.php tengo:

 class Permission extends Model { use HasFactory; protected $fillable = [ 'name', 'list' ]; }

En app\Models\Role.php tengo:

 class Role extends Model { use HasFactory; protected $fillable = [ 'name', 'permission_id' ]; }

En el controlador, primero obtengo la identificación del rol del usuario:

 $user_role = User::where('email', $user->getMail())->first()->role_id;

Luego, la lista de permisos:

 $user_permissions = Permission::select ( "roles.name as role_name", "permissions.list as permissions_list", ) ->leftJoin("permissions", "roles.permission_id", "=", "permissions.id") ->where('roles.id', $user_role) ->get();

Lo anterior pretende ser el equivalente de esta consulta MySQL, que funciona:

 SELECT roles.name as role_name, permissions.list AS permissions_list FROM roles LEFT JOIN permissions ON roles.permission_id = permissions.id WHERE roles.id = 1

El problema

El generador de consultas de Laravel que puede ver arriba falla con este mensaje:

 Syntax error or access violation: 1066 Not unique table/alias: 'permissions' (SQL: select `roles`.`name`, `permissions`.`list` from `permissions` left join `permissions` on `roles`.`permission_id` = `permissions`.`id` where `roles`.`id` = 1)

No puedo entender por qué, ya que probé la consulta MySQL en phpMyAdmin y funciona.

¿Dónde está mi error?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

->leftJoin("permissions", "roles.permission_id", "=", "permissions.id")

debe ser ->leftJoin("roles", "roles.permission_id", "=", "permissions.id")

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!