Laravel Eloquent モデルで、アクセサー メソッドから profile_image
プロパティを使用し、プロパティが空または false の場合にフォールバック値として /user.png
を返したい場合は、モデル内でアクセサーを定義できます。その方法は次のとおりです:
class User extends Authenticatable { // 其他模型代码... public function getProfileImageAttribute($value) { return $value ? asset('/storage' . $value) : url('/user.png'); } }
User
モデルでこのアクセサーを定義した後、User
モデル インスタンスの profile_image
プロパティにアクセスするたびに、このアクセサー メソッドが通過します。値が空でない場合 ($value
が true と評価される場合)、その値に基づいてリソース URL が返されます。それ以外の場合は、代替 URL /user.png
を返します。
その後、Blade テンプレートで次のものを直接使用できます。
auth()->user()->profile_image
追加のロジックは必要ありません:
メソッド名が getProfileImageAttribute($value)
なのはなぜですか?
Laravel の Eloquent ORM では、プロパティ アクセサーは 3 つの部分からなる命名規則を使用して定義されます。
-
get
: これは、メソッドがゲッター アクセサーであることを示します。プロパティの値を取得するときに使用されます。 -
AttributeName
: この部分は、アクセサーを定義するプロパティの名前を表します。この場合はProfileImage
です。通常、プロパティ名には「StudlyCaps」大文字小文字が使用されます。これは、名前内の各単語が大文字で始まり、単語間にスペースやアンダースコアが含まれないことを意味します。 -
Attribute
: この部分は、メソッドがプロパティ アクセサーであることを示します。したがって、これらをまとめると、getProfileImageAttribute($value)
は次のことを意味します:-
get
: これはゲッター アクセサーです。 -
ProfileImage
:profile_image
属性に使用されます。 -
Attribute
: これはプロパティ アクセサーです。
-
この命名規則は、プロパティ アクセサーを Eloquent モデル内の対応するプロパティに自動的にマップするために使用されます。 $model->profile_image
を使用して profile_image
プロパティの値を取得すると、Laravel は内部で getProfileImageAttribute
という名前のアクセサーメソッドを探してプロパティの値を提供します。この規則により、Laravel は追加の設定を行わずに、必要に応じてアクセサー メソッドを自動的に呼び出すことができます。
以上がLaravelの属性の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、PHPでインターフェイスを作成、実装、および使用する方法について説明し、コード組織と保守性の利点に焦点を当てています。

この記事では、PHPのCrypt()とpassword_hash()の違いについて、パスワードハッシュの違いについて説明し、最新のWebアプリケーションの実装、セキュリティ、および適合性に焦点を当てています。

記事では、入力検証、出力エンコード、およびOWASP ESAPIやHTML浄化器などのツールを使用して、PHPのクロスサイトスクリプト(XSS)を防止します。

PHPでのオートローディングは、必要に応じてクラスファイルを自動的にロードし、メモリの使用を削減し、コード組織を強化することでパフォーマンスを向上させます。ベストプラクティスには、PSR-4の使用とコードを効果的に整理することが含まれます。

PHPストリームは、一貫したAPIを介したファイル、ネットワークソケット、圧縮形式などのリソースの処理を統合し、複雑さを抽象化し、コードの柔軟性と効率を高めます。

この記事では、PHPでファイルアップロードサイズの管理を管理し、2MBのデフォルト制限とPHP.ini設定を変更してそれを増やす方法に焦点を当てています。

この記事では、PHP 7.1で導入されたPHPのヌル可能なタイプについて説明し、変数またはパラメーターが指定されたタイプまたはnullのいずれかを可能にします。読みやすさの改善、タイプの安全性、明示的な意図などの利点を強調し、宣言する方法を説明します

この記事では、プログラミングのunset()とlink()関数の違いについて説明し、目的とユースケースに焦点を当てています。 unset()はメモリから変数を削除しますが、link()はファイルシステムからファイルを削除します。どちらもEFFECにとって重要です


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

WebStorm Mac版
便利なJavaScript開発ツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









