LoginSignup
1
0

More than 5 years have passed since last update.

laravelで取得したいDBのtable名・where句・select句をメソッド内で直接指定せず、引数によって指定する

Last updated at Posted at 2018-12-08

シンプルに書きました。
自分ではあまり経験がないと思っていて思いつきで汎用性があるかもというメソッドを書いてみました。
もっといいやり方や拡張があれば編集リクエストいただけますとうれしいです。

個人的はwhere句とかselectとか引数で渡したらそれがあるかないかでwhere句が加えられたら汎用性がでそうなきがします。

(2018/12/09追加しました。)

引数を配列で渡すようにするといいかもしれませんが、機会があれば。

こういうのを書かないと取得するテーブルによって同じようなメソッドができて嫌なんですよね。
全然わかっていないのですが、リポジトリパターンとか名前だけ知っていて、そういうのをやっていけばもっときれいに繰り返しをさけてかけるんですかね。


<?php

$result = $this->hogeGet('hoge', 'fuga', 'piyo');


function hogeGet (string $table, string $where, string$select) : object
{
    $result[$table] = DB:table($table)->get();
    $query = DB:table($table);

    if (isset($where)) {
        $query->where("${where}");
    }

    if (isset($select)) {
        $query->select("${table}.${select)");
    }

    $result[$table]->get();
    return $result;
}

参考サイト
Laravel 5.5 データベース:クエリビルダ
https://readouble.com/laravel/5.5/ja/queries.html

1
0
2

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
1
0