Laravel Jetstream 1.0 プロファイル管理

イントロダクション

Laravel Jetstreamのプロフィール管理機能はユーザーが右上のユーザープロフィールナビのドロップダウンメニューを使いアクセスします。Jetstreamのスカフォールドするビュートアクションは、名前、メールアドレス、その他のオプション、プロフィール写真を更新できるように用意しています。

Screenshot of Profile Management

ビュー/ページ

Livewireスタック使用時は、resources/views/profile/update-profile-information-form.blade.php Bladeテンプレートを使い、ビューを表示します。Inertiaスタック使用時は、resources/js/Pages/Profile/UpdateProfileInformationForm.vueテンプレートを使い、ビューを表示します。

これらのテンプレートはそれぞれ、必要に応じてフォームに追加のフィールドを増やせるように、認証済みユーザーオブジェクト全体を受け取ります。フォームに追加した入力項目はUpdateUserProfileInformationアクションへ渡す$input配列に含まれます。

アクション

Jetstreamの典型的な機能として、ユーザープロフィール更新リクエストを満たすために実行するロジックはアプリケーションのアクションクラスに見ることができます。具体的には、App\Actions\Fortify\UpdateUserProfileInformationクラスがユーザープロフィール更新時に実行されます。このアクションは、入力を検証し、ユーザーのプロフィール情報の更新に責務を負います。

そのため、ロジックをカスタマイズしたければ、このクラスを変更します。アクションは現在認証されている$userと、存在するなら更新されたプロフィールの写真を含め、受信リクエストの全入力を含む$input配列を引数に受け取ります。

プロファイルの写真

プロフィール写真の有効化

ユーザーがカスタムプロフィール写真をアップロードできるようにする場合は、config/jetstream.php設定ファイルで機能を有効化する必要があります。機能を有効にするには、このファイル内のfeatures設定アイテムで、機能のエントリのコメントを外すだけです。

'features' => [
    Features::profilePhotos(),
    Features::api(),
    Features::teams(),
],

加えて、storage:link Artisanコマンドを実行する必要があります。このコマンドの詳細は、Laravelファイルシステムのドキュメントを参照してください。

php artisan storage:link

プロフィール写真の管理

Jetstreamはデフォルトで、ユーザーのカスタムプロフィール写真のアップロードが可能です。この機能はJetstreamのインストール時にApp\Models\Userクラスへ自動的に追加した、Laravel\Jetstream\HasProfilePhotoトレイトがサポートしています。

このトレイトはupdateProfilePhotogetProfilePhotoUrlAttributedefaultProfilePhotoUrlprofilePhotoDiskなどのメソッドで構成されており、振る舞いを必要であればカスタマイズできます。アプリケーションへ提供している機能を完全に理解するために、このトレイトのソースコード全体を読むことをおすすめします。

UpdateUserProfileInformationアクションが呼び出している、updateProfilePhotoメソッドがプロフィール写真を保存しているメインのメソッドです。

{tip} Laravel Vaporでアプリケーション実行時は、自動的にs3ディスクをデフォルトとして使用します。

アカウント削除

プロフィール管理スクリーンはそのユーザーがアプリケーションアカウントを削除するためのアクションパネルを用意しています。ユーザーが自身のアカウント削除を選ぶと、App\Actions\Jetstream\DeleteUserアクションクラスが実行されます。このクラスにより、アプリケーションアカウントの削除ロジックを自由にカスタマイズできます。

ドキュメント章別ページ

スタック

ヘッダー項目移動

注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。

移動

クリックで即時移動します。

バージョン

設定

適用ボタンクリック後に、全項目まとめて適用されます。

カラーテーマ
和文指定 Pagination
和文指定 Scaffold
Largeスクリーン表示幅
インデント
本文フォント
コードフォント
フォント適用確認

フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。

フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。

バックスラッシュを含むインライン\Code\Blockの例です。

以下はコードブロックの例です。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザに関連する電話レコードを取得
     */
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。

キーボード・ショートカット

オープン操作

PDC

ページ(章)移動の左オフキャンバスオープン

HA

ヘッダー移動モーダルオープン

MS

移動/設定の右オフキャンバスオープン

ヘッダー移動

T

最初のヘッダーへ移動

E

最後のヘッダーへ移動

NJ

次ヘッダー(H2〜H4)へ移動

BK

前ヘッダー(H2〜H4)へ移動

その他

?

このヘルプページ表示
閉じる