この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:9
ページ更新者:guest
更新日時:2018-12-06 10:24:37

タイトル: コントローラー
SEOタイトル: Laravelのコントローラーとは

コントローラーとは

コントローラはリクエストされたURIやフォームの入力値にしたがい、何かしらの処理を行う。

Laravelにおけるコントローラは、「app」フォルダ内の「Http」内にある「Controllers」フォルダ内に配置する。

 

コントローラーへのルーティング

/routes/web.php に以下のように記載する。

Route::get('/test', 'TestController@func');

上記の例では /test のURLがリクエストされると TestControllerクラスのfuncメソッドが実行される。(get通信限定)

 

コントローラーの実装

以下の例を参照してください。

namespace App\Http\Controllers;

use App\Repositories\TestRepository;
use Carbon\Carbon;
use DB;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Log;
use Validator;

 

class TestController extends Controller
{
    protected $testRepository;
    
    /*
     * コンストラクタ
     */
    public function
__construct(
            TestRepository $testRepository
            ){
        $this->testRepository = $testRepository;
    }
    
    public function func(){
        
        $items = $this->testRepository->getItems();
                
        return
view('index'
            , [
                'items' => $items,
            ]);
    }

}

コントローラークラスはデフォルトで用意されているControllerクラスを継承しましょう。

__constructはコンストラクタです。初期処理を行います。

上記の例ではDBアクセスを担うTestRepositoryをインスタンス化しています。

呼び出されたfuncメソッド内ではリポジトリを通じてDBからデータを取得します。

最後にreturnの後にビュー名を指定します。今回はindexというビューを指定します。

また、ビューにパラメータとしてitemsを渡しています。