「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Laravel Eloquentモデルが読み込まれているときにカスタムプロパティを追加する方法は?

Laravel Eloquentモデルが読み込まれているときにカスタムプロパティを追加する方法は?

2025-04-15に投稿されました
ブラウズ:462

How to Add Custom Attributes to Laravel Eloquent Models on Load?

ロードにlaravel雄弁モデルにカスタム属性を追加する方法?たとえば、このようなコントローラーを検討してください:

パブリック関数index() { $ sessions = eventsession :: all(); foreach($ sessions as $ i => $ session){ $ sessions [$ i] - > available = $ session-> getAvailability(); } $ sessionsを返します。 }

public function index()
{
    $sessions = EventSession::all();
    foreach ($sessions as $i => $session) {
        $sessions[$i]->available = $session->getAvailability();
    }
    return $sessions;
}

laravelバージョン

オプション1:プロパティ

を8個未満のバージョンに追加します。雄弁{ 保護された$ table = 'sessions'; 保護された$ appends = array( 'availability'); パブリック機能getAvailabilityattribute() { return $ this-> calculateavailability(); } }

オプション2:ToArray()Method

をOverride toArray() 保護された$ table = 'books'; public function toArray() { $ array = parent :: toarray(); $ array ['upper'] = $ this-> upper; $ arrayを返します。 } パブリック機能getupperattribute() { return strtoupper($ this-> title); } }

オプション3:変異属性を介してループ

class EventSession extends Eloquent {

    protected $table = 'sessions';

    public function availability()
    {
        return new Attribute(
            get: fn () => $this->calculateAvailability()
        );  
    }
}
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3