LoginSignup
0
0

More than 1 year has passed since last update.

簡単にModelの配列をviewsに反映させる方法

Last updated at Posted at 2023-01-28

LaravelでModelにある配列を呼び出す方法についての備忘録です。
カラムから紐づけるテーブルを新しく作る必要がない時などに使用できると思います。

やりたいこと

  • Modelにある配列をViewに渡し、int型のデータを任意の文字列に置き換える。

モデルに配列を挿入

モデルに配列を追加します。

Model
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Item extends Model
{
    use HasFactory;

    protected $fillable = ['name'];
    const TYPES = [
        0 => 'カジュアル',
        1 => 'モード',
        2 => 'キレイめ',
        3 => 'ナチュラル',
        4 => 'コンサバ',
    ];
}

ViewにItemの定数を呼び出す

view
   <td>{{App\Models\Item::TYPES[0]}}</td>

結果:'カジュアル'

実装例

Controllerから渡ってきた変数をForeachで繰り返しの処理をする時に使用できます。
例ではtypeカラムにあるint型のデータをモデルの配列で置き換えています。

controller
  public function show(Request $request)
    {
        $items = Item::all();
        return view('item.show', compact('items'));
    }
view
@foreach ($items as $item )
<tr>
   <td>{{App\Models\Item::TYPES[$item->type]}}</td>
</tr>
@endforeach

本来はカテゴリテーブルのような新しいテーブルを作った方が良いと思いますが、超簡単に実装できる方法の一つとしてはアリかな...

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0