私の問題は、Laravel dbクエリに関するものです。通常、すべてのoopユーザは、私的なプロパティを持つ親クラスの共通変数を定義し、oopの理由 - 再利用可能性のために他の子クラスから使用します...そして今私の問題は、キー、私は元の一般的なクエリの部分を変更したくないので(私は通常の人のように)ゲッターメソッドを書くが、それは常に参照によって呼び出されています。Laravel DBクエリクエリテンプレート(値で呼び出す)
例(親クラス):
$this->userConfirmedPackageData = DB::table('payments')
->join('users', 'users.id', '=', 'payments.user_id')->
*.....continue with more join*
->join('subjects', 'subjects.id', '=', 'classroom_subject.subject_id')
->where(['payments.confirmed' => 1, 'payments.user_id' => $this->currentUser->getUserId()]);
私は以下のように同じクラスにそれを使用する場合、クエリの共通部分は、私は私の他のすべての子クラスのクエリのためのテンプレートのようにそれを使用したいが、それを定義した後、 (子クラス):
$firstQuery = $this->getUserConfirmedPackageData()->join("aTable")->where("something.id",3)->get(["something.id"]);
$secondQuery = $this->getUserConfirmedPackageData()->join("bTable")->where("somethingDifferentTable.user_id",1111)->take(5)->get(["somethingDifferentTable.name"]);
私の貴重なプライベート変数は、最初のgetメソッドの後に変更されます(スタックされます)!
私は "get"と言うまでDBテーブルを終了できませんが、このような共通部分のクエリを使用する方法はありますか?説明のためにすべてのコードを書きましたが、構文エラーがあるかもしれませんが、それはロジックに関するコードではありません。ありがとう...