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