Cet article vous apporte des connaissances pertinentes sur Laravel. Il présente principalement qu'est-ce que Laravel Nova ? Comment simuler des utilisateurs dans l’application Laravel ? Pour ceux que cela intéresse, jetez un oeil ci-dessous, j'espère que cela vous sera utile.
Une nouvelle fonctionnalité de Laravel Nova est l'usurpation d'identité de l'utilisateur dans le panneau de configuration. C’est pratique pour de nombreuses raisons. Mais pour moi, lorsque je reçois un rapport de bug ou un problème et que je veux voir ce que voit l'utilisateur, les simuler fait gagner beaucoup de temps car vous pouvez voir ce qu'ils voient.
Si vous souhaitez également implémenter cette fonctionnalité dans votre application Laravel, le package Laravel Impersonate vous facilite la tâche.
composer require lab404/laravel-impersonate
Ensuite, ouvrez config/app.php et ajoutez-le au tableau des fournisseurs :
'providers' => [ // ... Lab404\Impersonate\ImpersonateServiceProvider::class, ],
Après cela, ouvrez Models/User et ajoutez le trait :
use Lab404\Impersonate\Models\Impersonate; class User extends Authenticatable { use Impersonate;
Le package Laravel Impersonate contient quelques méthodes pour usurper l'identité des utilisateurs, mais je trouve qu'il est plus simple d'ajouter des macros de routage au fichier routes/web.php :
Route::impersonate();
Cela vous donne des routes nommées :
// Where $id is the ID of the user you want to impersonate route('impersonate', $id) // Or in case of multi guards, you should also add `guardName` (defaults to `web`) route('impersonate', ['id' => $id, 'guardName' => 'admin']) // Generate an URL to leave the current impersonation route('impersonate.leave')
Laravel Impersonate Une fois la configuration prête, vous pouvez utiliser l'un des modèles d'assistance :
@canImpersonate($guard = null) <a href="{{ route('impersonate', $user->id) }}">Impersonate this user</a> @endCanImpersonate
, puis inverser :
@impersonating($guard = null) <a href="{{ route('impersonate.leave') }}">Leave impersonation</a> @endImpersonating
Une autre solution que vous pourriez envisager est la suivante : , limite qui peut usurper l'identité d'autres utilisateurs et quels utilisateurs peuvent être usurpés. Dans Modèles/Utilisateur, vous pouvez ajouter les méthodes suivantes :
/** * By default, all users can impersonate anyone * this example limits it so only admins can * impersonate other users */ public function canImpersonate(): bool { return $this->is_admin(); } /** * By default, all users can be impersonated, * this limits it to only certain users. */ public function canBeImpersonated(): bool { return ! $this->is_admin(); }
Apprentissage recommandé : "tutoriel vidéo laravel"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!