-
Notifications
You must be signed in to change notification settings - Fork 231
Open
Labels
Description
Describe the bug
model "belongsToMany" do not use cache
Eloquent
<?php
namespace App\Models\Admin;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Tymon\JWTAuth\Contracts\JWTSubject;
/**
* @mixin IdeHelperAdminUser
*/
final class AdminUser extends Authenticatable implements JWTSubject
{
/**
* 关联角色
*/
public function roles(): BelongsToMany
{
return $this->belongsToMany(AdminRole::class, 'admin_user_roles');
}
public function getJWTIdentifier()
{
return $this->getKey();
}
public function getJWTCustomClaims(): array
{
return [];
}
}
<?php
namespace App\Models\Admin;
use App\Models\BaseModel;
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
/**
* @mixin IdeHelperAdminRole
*/
final class AdminRole extends BaseModel
{
use Cachable;
}
dump(auth()->user()->roles);
Stack Trace
The full stack trace from your log file.
Environment
- PHP: [8.3.10]
- OS: [Macos 15.0.1]
- Laravel: [11.29.0]
- Model Caching: [11.0]
Metadata
Metadata
Assignees
Labels
Projects
Milestone
Relationships
Development
Select code repository
Activity
akyrey commentedon May 27, 2025
I was investing this issue:
the problem here is that
User
model doesn't use theCachable
trait (as adviced in the docs) and soModelCaching
trait methodnewBelongsToMany
doesn't exist and isn't used.The belongsToMany caching works correcly if the parent model uses the
Cachable
trait