LaravelでのEloquent ORMのアウトプット - Hashimoto-Noriaki/laravel-php-memo GitHub Wiki

2022年5月15日投稿

資料

https://qiita.com/gone0021/items/951cd63a7e591e18cd2a

この資料のアウトプットです。

Eloquennto

コントローラーによるデータベースの操作するものです。

下のコードは全データ取得をします。 クラス名::all();

public function task()
    {
     $tasks = Task::all();   // Eloquent"Member"で全データ取得
     return view('tasks.index', ["tasks" => $tasks]);

    }
@foreach ($folders as $folder)
  {{ $folder->name }}
  {{ $folder->tel }}
  // 中略... 
@endforeach

主キー(id)による検索

主キー(id)による検索はfindを使います。

<input type="text" name="primary" id="" value="">

主キーで検索する場合はfind()を使用します。

記述方法 クラス名::find('主キー');

public function find(Request $request)
    {
       $folder = sample::find($request->primary) 
        return view('sample.index', ['item' => $item])
        ]);
    } 
{{ $items->name }}
{{ $items->tel }}
// 中略... 

find()の引数の型によってfirst()で文字列として値を取得するか、 findMany()で配列として取得するかが変わってくるみたいです。

findMany()はget()で配列として値を取得するメソッドです。

複数のidから値を取得

findメソッドで複数のレコードを取得する場合は引数を配列で記述するか、findMany()で記述します。

$folders = Sample::find([1, 2, 3,]);
// または
$folders = Sample::findMany([1, 2, 3,]);

特定の値を検索

特定の値を検索する場合はwhere()を使用します。

get()で全ての値を取得します。get('カラム名', '値')やfirst()で取得する値を指定できます。

記述方法: クラス名::where('検索値')->取得方法;

<input type="text" name="primary" id="" value="">
public function search(Request $request)
{
  $items = sample::where($request->name)->get();
  return view('sample.index', ['items' => $items]);
}
@foreach ($items as $item)
  {{ $items->name }}
  {{ $items->tel }} 
@endforeach

複数の値を検索対象

複数の値を検索対象とする場合はwhrer()とorwhere()を使います。 こではaddressをlike %search%で検索します。

<input type="text" name="primary" id="" value="">

記述方法: クラス名::where('検索値')->取得方法;

public function search(Request $request)
{
  $items = sample::where('name', ($request->search)->orwhere('address', 'LIKE', "%{$request->search}%")->get();
  return view('sample.index', ['items' => $items]);
}
@foreach ($items as $item)
  {{ $items->name }}
  {{ $items->tel }} 
@endforeach