【Laravel】Modelクラスの謎の参照元の正体(=get~Attribute)

Laravelまだまだ知らないことがいっぱい。
というか、気付いたら忘れてるんだよなー…痴呆かしら。

今回のは下記の通り。

$products->$parent_category_id

↑こんなよく見る感じの参照なんだけど、ソースでGREPしてもセットしてるとこがどこにもない。

でもデバッグしてみると、ちゃんと値が取れている。

じゃあどっかで名前解決してるんだろーなとググってみたら、ありましたよ、答えが。

get~Attributeメソッド

Laravel 8.x Eloquent:ミューテタ/キャスト
https://readouble.com/laravel/8.x/ja/eloquent-mutators.html

おもっくそLaravelのリファレンスに書いてあった。これですな。

Modelクラスの中に、下記のように記載しておくと…

public function getParentCategoryIdAttribute()
{
    …
}

$products->$parent_category_idってメソッドの戻り値が取得できる。

デバッグ進めていくとEroquentでメソッド名の名前解決してました。

明日には忘れてるだろうけどメモメモ。

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください