2017-06-28 17 views
0

私は現在laravelが新しく、実際に使用することに非常に興奮しています。私はWebサイトを非フレームワーク標準からLaravelに移行するので、可能な限り組織を追跡したいと思っています。それだけで特定の機能のためのデータを生成する必要があります複数の機能を備えたコントローラ

Route::get("/", "[email protected]"); //example 

このコントローラーを:私の理解へ

は、コントローラは、唯一の主な目的は、そのようなあなたのようにそれを実行できることに役立つはずです。

私の問題は、自分のウェブサイトに、フロントエンドにデータを配信する必要のある2つの独立したスクリプトがあることです。

1つのコントローラで2つのデータを結合することは許容されますか、それとも悪い習慣ですか? これを行うためのよりクリーンな方法がありますか?

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use Illuminate\Support\Facades\Auth; 
use Illuminate\Support\Facades\DB; 

class TestController extends Controller 
{ 
    protected $data1 = []; 
    protected $data2 = []; 

    public function __construct() 
    { 
     $this->middleware('auth'); 
    } 

    public function run() 
    { 
     return view("welcome", array_merge($this->data1, $this->data2)); 
    } 

    protected function getData1 
    { 
     $this->data1 = [somedata..] 
    } 

    protected function getData2 
    { 
     $this->data2 = [somedata..] 
    } 
} 

答えて

0

これは問題ありません。私は個人的に読みやすさのために分離するでしょう。 withメソッドを使用してデータをバインドすることもできます。

return view('welcome') 
       ->with('data1', $this->getData(1)) 
       ->with('data2', $this->getData(2)); 

https://laravel.com/docs/5.4/views

関連する問題