ホームページ >PHPフレームワーク >Laravel >Laravel で提案を書くためのガイドを共有する
以下の laravel チュートリアル コラムでは、Laravel の提案の書き方についてのガイドを共有します。それが必要な友人にとって役立つことを願っています。
Laravel は、柔軟で魔法のような記述方法を多数提供するエレガントなフレームワークです。ただし、柔軟性が高くなるほど、いくつかの側面で小さな問題が発生する可能性があります。
以下は、議論と参照のみを目的として、Laravel が推奨しない記述方法のリストです。可能であれば、コメント欄でご意見をお聞かせください。
リクエストの問題
リクエスト パラメーターは、次の記述などの動的属性を通じて取得できます。
$name = $request->name;
この記述方法は推奨されません。属性名 クエリやコンテンツなどの独自クラスの属性の場合、予期せぬ影響が発生します。このタイプのキーワードをすべて覚えていない限り (すべての属性を覚えていたとしても、次のバージョンで新しい属性が追加されるかどうかは保証できません)、そうしないと、遅かれ早かれこの落とし穴に遭遇することになります。これを使用することは推奨されません。次の方法を使用することをお勧めします:
// 可以用这种方式 $name = $request->input('name'); // 或用这种方式 $input = $request->all(); $name = $input['name'];
概要: request 動的属性は使用しないでください。
Model appends
class User extends Model { protected $appends = ['is_adult']; public function getIsAdultAttribute() { return $this->attribute['age'] > 18; } }
getXxxAttribute は非常に便利な機能ですが、append がモデルに自動的に追加されると、次のような多くの問題が発生します。を選択すると、年齢フィールドはありませんが、追加フィールドは引き続き追加されます。これにより、多くの問題が発生することがあります。 $append 属性は使用しないことをお勧めします。必要に応じて、このプロパティをコントローラー層で読み込みます。
// model class User extends Model { public function getIsAdultAttribute() { return $this->attribute['age'] > 18; } } // controller $user = User::first(); $user->append('is_adult');
要約: モデルの追加は使用しないでください。
モデルの動的プロパティ
// 第1种写法 $user = User::first(); // ?? 此动态属性如果是表字段名称是如 exists 等就会出问题。 $name = $user->name; // 第2种写法更安全 $user = User::first()->toArray(); $name = $user['name'];
モデルには、オブジェクトを使用するときに動的プロパティもあります。これも競合の問題を引き起こしますが (通常は発生する可能性は低いです)、データ テーブルのキーワードフィールドにはできるだけ出現しないようにする必要があります。 (2 番目の書き方の方が安全ですが、1 番目の書き方を好む人が多いと思います。データベース フィールドで次のキーワードを避けるだけで済みます。私も最初の書き方を使用するのが好きです。)
// /vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php exists, incrementing timestamps wasRecentlyCreated
この記事は随時更新していきますので、Laravelを使っている方はぜひ使い方を教えていただければ幸いです。
以上がLaravel で提案を書くためのガイドを共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。