이 글은 Laravel Nova가 무엇인지 소개하는 글입니다. Laravel 애플리케이션에서 사용자를 시뮬레이션하는 방법은 무엇입니까? 관심 있으신 분들은 아래 내용을 읽어보시고 도움이 되셨으면 좋겠습니다.
Laravel Nova의 새로운 기능은 제어판의 사용자 가장입니다. 이는 여러 가지 이유로 편리합니다. 하지만 제 경우에는 버그 보고서나 문제를 받고 사용자가 보는 것을 보고 싶을 때 이를 시뮬레이션하면 사용자가 보는 것을 볼 수 있기 때문에 많은 시간이 절약됩니다.
Laravel 애플리케이션에서 이 기능을 구현하려는 경우 Laravel Impersonate 패키지를 사용하면 쉽게 할 수 있습니다.
composer require lab404/laravel-impersonate
그런 다음 config/app.php를 열고 공급자 배열에 추가합니다.
'providers' => [ // ... Lab404\Impersonate\ImpersonateServiceProvider::class, ],
그런 다음 Models/User를 열고 특성을 추가합니다.
use Lab404\Impersonate\Models\Impersonate; class User extends Authenticatable { use Impersonate;
Laravel Impersonate 패키지에는 사용자를 가장하는 몇 가지 방법이 포함되어 있지만, 저는 Routes/web.php 파일에 라우팅 매크로를 추가하는 것이 가장 쉽다고 생각합니다:
Route::impersonate();
이것은 명명된 경로를 제공합니다:
// 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 설정이 준비되면 템플릿 도우미 중 하나를 사용할 수 있습니다:
@canImpersonate($guard = null) <a href="{{ route('impersonate', $user->id) }}">Impersonate this user</a> @endCanImpersonate
그런 다음 반전:
@impersonating($guard = null) <a href="{{ route('impersonate.leave') }}">Leave impersonation</a> @endImpersonating
고려할 수 있는 또 다른 방법은 다음과 같습니다. , 다른 사용자를 가장할 수 있는 사람과 가장할 수 있는 사용자를 제한합니다. 모델/사용자에서 다음 방법을 추가할 수 있습니다.
/** * 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(); }
추천 학습: "laravel video tutorial"
위 내용은 Laravel 애플리케이션에서 사용자를 시뮬레이션하는 방법에 대한 자세한 설명(코드 단계 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!