search
LoginSignup
0

More than 5 years have passed since last update.

posted at

updated at

Organization

Laravelを使ってみて

Laravelを使ってみて

はじめに

mediba advent calendar 2016 の21日目担当 @tetaketa です。

私のチームではyii2を使っていたのですが、新規開発のタイミングで、別のフレームワークもと思って色々検討した結果、Laravelを使ってみることになりました。

Laravelを使い始めて困ったことや調べたことをtipsとして紹介します。
Laravelのバージョンは5.2です。

ルーティングに名前をつける

viewでURLを埋め込むときやリダイレクトするときに、URLをべた書きしたくない。
そんなときは、routes.phpの設定で名前をつけると、route()で呼び出せます。

Route::group(['as' => 'campaign::'], function () {
    Route::get('campaign', 'CampaignController@index')->name('index');
    Route::get('campaign/create', 'CampaignController@create')->name('create');
});

route('campaign::create')で呼び出せます。

引数に値の入ったクラスをDI

Laravelのサービスコンテナ(DIコンテナ)だと、コンストラクタにタイプヒントで指定すれば、勝手にbindしてくれます。
引数を持ったクラスの場合、例えばS3のclientとかの場合だとどうすれば良いのかと思って調べてみました。

デフォルトで存在するAppServiceProvider.phpを利用します。
register()の中にbindを書くだけ。
これで、Aws\S3\S3Clientをタイプヒントすると勝手にbindしてくれます。

public function register()
{
    $this->app->bind('Aws\S3\S3Client', function ($app) {
        return new S3Client(config('services.s3'));
    });
}

Collectionについて

LaravelのEloquent ORMを使ってDBから複数の値を取得すると、LaravelのCollectionクラスとして返ってきます。

その中の keyBypluck が便利でした。

keyByは、指定したキーをキーにしたコレクションを返してくれます。
idをキーにしたいときとかに使っています。

pluckは、コレクションから指定した値だけを取得できます。

まとめ

Laravelはドキュメントがしっかりしていて開発しやすいです。

なるべく早く5.3にアップデートしたいと思います。

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
What you can do with signing up
0