LoginSignup
0
1

More than 1 year has passed since last update.

【Laravel】多次元配列のデータにキーワード検索をかける方法

Posted at

背景

キーワード検索でcontroller側でDBにアクセスしてデータを取得する処理はよく行われるが
今回は既に出来上がった多次元配列の変数にキーワード検索を行い、View側に返す処理を実行します。

処理概要

View側で部署検索フォームに文字を入れた際に部分検索で該当するデータを返すようにします。

処理内容

preg_matchとCollectionクラスのfilterメソッドを使用します。
【多次元配列のデータ】

$departments = [
   ['name' => '佐藤', 'department' => '営業部'],
   ['name' => '鈴木', 'department' => '総務部'],
   ['name' => '田中', 'department' => '人事部'],
];

処理。検索キーワードは$request->departmentに入ってる事とします。

$collection = collect($departments);
$target = '/' . $request->department . '/';
$filtered = $collection->filter(function($value) use ($target){
    return preg_match($target, $value['department']);
});

return view("***", compact('filtered'));

filterなどの無名関数を引数に取るメソッドは、外部から変数を渡す際にuseが必要になります。
例えばView側から営業という文字列が送信されてきた場合
['name' => '佐藤', 'department' => '営業部'],
のデータを返す処理となります。

0
1
0

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
1