pluckで、独自フィールドを使いたい
public function getDisplayUsernameAttribute() { return $this->nickname ?? $this->username; }
こんな感じに、display_usernameという値を使いたい。
ニックネームがなければ、ユーザーネームを出すという挙動。
これに対して、pluck(lists)をしてみたい。
これを使ったpluckって出来るのかな?ってことで試してみる。
結果
$user->lists('display_username', 'id')
実は動く。
なんで動く?
なぜかは、内部では該当インスタンスの値を配列に入れる際に、フィールド値を指定して取得をする。
$this->display_username
みたいにフィールドを呼び出して、配列に突っ込んでいく
すると、getDisplayUsernameAttribute関数が起動するので、想定した値を配列に加えられる。