Laravel8 Jetstream 로그인 기능 사용
Livewire
또는 Inertia.js
로 선택할 수 있지만 이번에는 Livewire
를 선택했습니다.절차
설치
composer에서 Laravel Jetstream을 설치합니다.
composer require laravel/jetstream
Livewire를 설치합니다.
※옵션 --teams
를 부가로 チーム管理機能
를 사용할 수 있는 것 같습니다.
php artisan jetstream:install livewire --teams
빌드를 실행합니다.
npm install && npm run dev
마이그레이션 파일을 실행합니다.
php artisan migrate
이제 톱 페이지에 안전하게 액세스할 수 있습니다.
일본어 설정
Laravel을 일본어에 대응시킵니다.
우선은 아래의 값을 수정합니다.
config/app.php<?php
return [
'timezone' => 'Asia/Tokyo',
'locale' => 'ja',
'fallback_locale' => 'ja',
'faker_locale' => 'ja_JP',
];
로그인 페이지 페이지도 일본어로 수정해 봅니다.
resources/views/login.blade.php<div>
<x-jet-label for="email" value="{{ __('メールアドレス') }}" />
<x-jet-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
</div>
<div class="mt-4">
<x-jet-label for="password" value="{{ __('パスワード') }}" />
<x-jet-input id="password" class="block mt-1 w-full" type="password" name="password" required autocomplete="current-password" />
</div>
<div class="block mt-4">
<label for="remember_me" class="flex items-center">
<x-jet-checkbox id="remember_me" name="remember" />
<span class="ml-2 text-sm text-gray-600">{{ __('次回から自動でログインする') }}</span>
</label>
</div>
<div class="flex items-center justify-end mt-4">
@if (Route::has('password.request'))
<a class="underline text-sm text-gray-600 hover:text-gray-900" href="{{ route('password.request') }}">
{{ __('パスワードをお忘れですか?') }}
</a>
@endif
<x-jet-button class="ml-4">
{{ __('ログイン') }}
</x-jet-button>
</div>
영어 이름이었던 부분을 다시 쓰는 것만으로 간단합니다.
유효성 검사 메시지도 일본어로 변경합니다.ressources/lang/ja
를 작성해, ja 디렉토리의 부하는 ressources/lang/en
와 같습니다.
일본어화 파일은 공식 페이지에서 취득 가능합니다.
ぇtps://레아도 bぇ. 이 m/ぁらゔぇl/8. x / 그럼 / 맞는 thphp. HTML
ぇtps://레아도 bぇ. 이 m/ぁらゔぇl/8. x/쟈/파기나치온-php. HTML
h tps : // 레아도 bぇ. 이 m/ぁらゔぇl/8. x/쟈/파스ぉ rds-php. HTML
ぇtps://레아도 bぇ. 이 m/ぁらゔぇl/8. x/그럼/ゔぁぃ다치온-php. HTML
다만, ↑를 작성한 것만으로는 일부 일본어화되어 있지 않은 곳이 있는 것 같습니다.
예를 들어, Whoops! Something went wrong
분명히 이것은 아래에 표시되는 것 같습니다. . .
vendor/laravel/jetstream/resources/views/components/validation-errors.blade.php@if ($errors->any())
<div {{ $attributes }}>
<div class="font-medium text-red-600">{{ __('Whoops! Something went wrong.') }}</div>
<ul class="mt-3 list-disc list-inside text-sm text-red-600">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
이러한 공식의 일본어화 파일로 대응할 수 없었던 밸리데이션 메세지는, resources/lang하하에 ja.json
(을)를 작성해 대처합니다.
resources/lang/ko.json{
"Whoops! Something went wrong.": "エラーが発生しました。"
}
일본어로 표시되었습니다. 다른 곳에서도 일본어화할 수 없는 곳을 발견하면, 수시로 resources/lang/ja.json
에 추기해 가면 괜찮을 것 같습니다.
테스트 데이터 작성
이미 User의 Factory가 준비되어 있으므로 아래 파일의 코멘트 아웃을 제거하여 준비 완료입니다.
database/seeders/DatabaseSeeder.php<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
\App\Models\User::factory(10)->create(); // ここのコメントアウトを外す。
}
}
Seeder 파일을 실행합니다.
php artisan db:seed
덧붙여서, 사용자 등록 페이지에서 데이터를 작성하는 것도 가능합니다.
로그인 테스트
작성한 테스트 데이터로 로그인을 실행합니다.
대시보드로 리디렉션되면 로그인 성공입니다.
로그인 후에는 프로필 페이지 같은 것 같습니다.
일단 로그인은 성공했기 때문에 여기서 끝납니다.
Reference
이 문제에 관하여(Laravel8 Jetstream 로그인 기능 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/dl1ve/items/98208740f056e2422645
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
composer require laravel/jetstream
php artisan jetstream:install livewire --teams
npm install && npm run dev
php artisan migrate
<?php
return [
'timezone' => 'Asia/Tokyo',
'locale' => 'ja',
'fallback_locale' => 'ja',
'faker_locale' => 'ja_JP',
];
<div>
<x-jet-label for="email" value="{{ __('メールアドレス') }}" />
<x-jet-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
</div>
<div class="mt-4">
<x-jet-label for="password" value="{{ __('パスワード') }}" />
<x-jet-input id="password" class="block mt-1 w-full" type="password" name="password" required autocomplete="current-password" />
</div>
<div class="block mt-4">
<label for="remember_me" class="flex items-center">
<x-jet-checkbox id="remember_me" name="remember" />
<span class="ml-2 text-sm text-gray-600">{{ __('次回から自動でログインする') }}</span>
</label>
</div>
<div class="flex items-center justify-end mt-4">
@if (Route::has('password.request'))
<a class="underline text-sm text-gray-600 hover:text-gray-900" href="{{ route('password.request') }}">
{{ __('パスワードをお忘れですか?') }}
</a>
@endif
<x-jet-button class="ml-4">
{{ __('ログイン') }}
</x-jet-button>
</div>
@if ($errors->any())
<div {{ $attributes }}>
<div class="font-medium text-red-600">{{ __('Whoops! Something went wrong.') }}</div>
<ul class="mt-3 list-disc list-inside text-sm text-red-600">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
{
"Whoops! Something went wrong.": "エラーが発生しました。"
}
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
\App\Models\User::factory(10)->create(); // ここのコメントアウトを外す。
}
}
php artisan db:seed
Reference
이 문제에 관하여(Laravel8 Jetstream 로그인 기능 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/dl1ve/items/98208740f056e2422645텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)