laravel

Laravel での foreignIdFor、foreignUlid、foreignUuid メソッドの使用例

animal_chara_radio_penguin laravel

foreignIdFor メソッド

foreignIdFor、foreignUlid、foreignUuid メソッドの詳細解説

foreignIdForforeignUlidforeignUuid メソッドは、関連エンティティとの関連付けを構築するために使用されます。これらのメソッドは、モデルクラスに新しいカラムを作成し、そのカラムは関連エンティティのIDを格納します。

foreignIdFor メソッド

foreignIdFor メソッドは、関連エンティティのモデルクラスを指定して、そのエンティティのIDを格納するためのカラムを作成します。カラム名は {column}_id となります。

メソッド概要

  • メソッド名foreignIdFor
  • 引数:
    • model_class: 関連エンティティのモデルクラス
  • 戻り値: 作成されたカラム

作成されるカラム

  • {column}_id: 関連エンティティのIDを格納するカラム

カラムの型

  • モデルのキー型が Integer の場合: UNSIGNED BIGINT
  • モデルのキー型が Ulid の場合: CHAR(26)
  • モデルのキー型が Uuid の場合: CHAR(36)

PHP

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    //
}

class Post extends Model
{
    use HasFactory;

    protected $fillable = [
        'title',
        'author_id',
    ];

    public function author()
    {
        return $this->belongsTo(User::class, 'author_id');
    }
}

コードは注意してご使用ください。content_copy

上記の例では、Post モデルは User モデルと author_id 外部キーを通じて関連付けられています。foreignIdFor メソッドは、author_id カラムを自動的に作成します。

foreignUlid メソッド

foreignUlid メソッドは、関連エンティティのIDを格納するための ULID 型カラムを作成します。カラム名は {column}_id となります。

メソッド概要

  • メソッド名foreignUlid
  • 引数: なし
  • 戻り値: 作成されたカラム

作成されるカラム

  • {column}_id: 関連エンティティのIDを格納する ULID 型カラム

PHP

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

use Ramsey\Uuid\Uuid;

class User extends Model
{
    //
}

class Post extends Model
{
    use HasFactory;

    protected $fillable = [
        'title',
        'author_id',
    ];

    protected $casts = [
        'author_id' => 'uuid',
    ];

    public function author()
    {
        return $this->belongsTo(User::class, 'author_id');
    }
}

コードは注意してご使用ください。content_copy

上記の例では、Post モデルは User モデルと author_id 外部キーを通じて関連付けられています。foreignUlid メソッドは、author_id カラムを uuid 型として自動的に作成します。

foreignUuid メソッド

foreignUuid メソッドは、関連エンティティのIDを格納するための UUID 型カラムを作成します。カラム名は {column}_id となります。

メソッド概要

  • メソッド名foreignUuid
  • 引数: なし
  • 戻り値: 作成されたカラム

作成されるカラム

  • {column}_id: 関連エンティティのIDを格納する UUID 型カラム

PHP

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

use Ramsey\Uuid\Uuid;

class User extends Model
{
    //
}

class Post extends Model
{
    use HasFactory;

    protected $fillable = [
        'title',
        'author_id',
    ];

    protected $casts = [
        'author_id' => 'uuid',
    ];

    public function author()
    {
        return $this->belongsTo(User::class, 'author_id');
    }
}

コードは注意してご使用ください。content_copy

上記の例では、Post モデルは User モデルと author_id 外部キーを通じて関連付けられています。foreignUuid メソッドは、author_id カラムを uuid 型として自動的に作成します。

まとめ

foreignIdForforeignUlidforeignUuid メソッドは、Laravel で関連エンティティとの関連付けを構築するための便利な方法です。これらのメソッドを使用することで、コードを簡潔化し、データベースとのやり取りを効率化できます。

補足

  • Laravel では、uuid 型は Ramsey\Uuid\Uuid ライブラリによって提供されます。
  • 上記の例は基本的な使い方を示しています。必要に応じて、これらのメソッドをさらにカスタマイズすることができます。

ソース

info

  1. github.com/amzadhossainjacky/laravel_eloquent_orm
タイトルとURLをコピーしました