2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

medibaAdvent Calendar 2016

Day 21

Laravelを使ってみて

Last updated at Posted at 2016-12-20

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にアップデートしたいと思います。

2
0
0

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
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?