Help us understand the problem. What is going on with this article?

Laravelのアクセサ

はじめに

例えばviewで人の氏名を実装する時苗字+名前といちいち実装するのは手間がかかりますよね。
今回のお題であるアクセサというLaravelの機能を用いれば、Modelに苗字+名前と定義しておくだけで、viewで呼び出す時は氏名で一気にフルネームを呼び出すことができます。

アクセサを使って実装する

そもそもアクセサとは

アクセサを定義するには、アクセスしたいカラム名が「studlyケース(Upper Camel Case)」でFooの場合、getFooAttributeメソッドをモデルに作成します。以下の例では、first_name属性のアクセサを定義しています。first_name属性の値にアクセスが起きると、Eloquentは自動的にこのアクセサを呼び出します。
Eloquent:ミューテタ 7.x Laravel

Laravelの公式ドキュメントには上記のように定義されています。
簡単にまとめるとModelにget〜Attribute(今回の場合はgetFullNameAttribute)というメソッドを定義すると、それをuseしたControllerやviewでfull_name(今回の場合は$this->full_name)属性の値で呼び出せます。

Model
namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザーのフルネームを取得
     *
     * @return string
     */
    public function getFullNameAttribute()
    {
        return this->last_name . this->first_name;
    }
}
view
<?php

    {{ $this->full_name }}

おわりに

いかがでしたでしょうか。
今回のようにModelに定義しておくことでフルネームを表示するに「山田花子」「山田 花子」「山田 花子」みたいに人によってスペース開けたり開けなかったり、半角スペースだったりすると思うので、まとめて定義しておくと保守性が上がるでしょう。

yukachin0414
2019.11.01〜webエンジニアになりました(*´꒳`*)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした