2017-11-30 19 views
-1

私は、例えば以下のような関数を作成しました。 getAllCitiesOfLocations()。この機能は私に都市の集約を提供します。私は、この機能を例えば以下のように再利用可能にしたいと考えています。 ServiceControllerのインデックス関数用インデックス関数の中で、関数getAllCitiesOfLocations()を呼び出して情報を取得し、後でその情報をビューに渡したいとします。コントローラの再利用可能な機能を置く場所

しかし、私は赤で、他のコントローラから関数を呼び出すのに適切なスタイルではないことを示しています。さらに、私はヘルパークラスを作成する必要があります私は赤、。残念ながら、ヘルパークラスを作成する方法を情報で検索すると、ビューのヘルパークラスを作成するための情報しか見つかりません。あなたは私

1を伝えることができます)私はそれが内にないときには、後に関数を呼び出すことができますどのように)必要に応じて、異なるコントローラによって呼び出されるべきこと、機能を入れて、

2.なければならない場合には同じコントローラですか?

public function getAllCitiesOfLocations(){ 
    $cities = DB::table('locations') 
       ->select('city') 
       ->groupBy('city') 
       ->get(); 
    return $cities; 
    } 

答えて

1

あなたは、私は通常、アプリ/サービスのフォルダ内に格納この

namespace App\Services; 

class Helper { 

     public static function getAllCitiesOfLocations(){ 
      // Code goes here 
     } 

} 

のようなヘルパークラスを使用することができますが、それはどこでもあなたが好きなことができます。次に、あなたのコントローラでは、このようにそれらにアクセスすることができます。

App\Services\Helper::getAllCitiesOfLocations(); 

あなたはまたあなたのためlaravelのautoloadにこのクラスをさせることができ、あなたのエイリアスの配列に追加しメソッドを呼び出すときにconfig/app.php

'Helper' => App\Services\Helper::class 

で見つかりましたあなたのヘルパークラスから、あなたが何をしたいのか、あなただけで

Helper::getAllCitiesOfLocations(); 
2

この種の機能は、コントローラではなくモデルに属します。一般的に、データベースを扱う場合は、モデルに物事を入れます。

関連する問題