Laravel のファイルシステムはS3やRackspaceのようなオブジェクトストレージをサポートしています。S3にファイルを保管する際、誰でもアクセスできる状態ではあるべきではないファイルは多々あるでしょう。そういったファイルを利用者にDLさせる際にはPre-Signed(署名付き)URLが便利です。
特定のルートをCSRFトークンチェックを除外する
この投稿の内容は Laravel 5.1 以降のバージョンにおいて利用できます。
Laravel で外部からの Webhook を受けたいときなど、特定のルートだけCSRFトークンのチェックをバイパスする必要性がある場合があります。WebhookプロバイダはCSRFトークンを知るわけがなく、扱えませんから。 “特定のルートをCSRFトークンチェックを除外する” の続きを読む[Laravel 5.5] リダイレクト専用ルーティング
Laravel 5.5 LTS からルート専用ルーティング Route::redirect
が使用可能になりました。これにより、リダイレクトのためだけにわざわざコントローラーにメソッドを生やしたりする必要がなくなり、URL変更時のリダイレクトなどが容易になりました。
JSONP のレスポンスを返す
Symfony の JsonResponse
にはデフォルトで CORS 回避などに使われる jsonp にデフォルトで対応してい、Laravel もまたそれに対応している。
セッションの Cookie をセキュアに配信する
Laravel を本番にデプロイするにあたって意外と忘れがちな点として、セッションの Cookie に Secure (httpsのみで使用可能にするオプション) をよく付け忘れるというものがある。
Slack 通知を送信する
Laravel 5.3+ で実装された Notification を使用して Laravel でいつでもどこでもSlack通知を発火する。
配列フォームバリデーションの属性名を設定する
フォームバリデーションで配列の入力値を使用する際、その配列の属性名 (attribute) を設定していないと 「member.2.nameは必須です」
のような表示になってしまう。
属性名を設定しておけば通常のバリデーション同様には使える。
Laravel Mix で Vue の JSX レンダリングを利用する
Laravel 5.4 で導入された Laravel Mix で Vue 2 + JSX を利用できるようにすることは難しくありません。
ただ、ちょっと作業がいるだけで。
Laravel-Mix で HMR を利用する
Laravel 5.4 から採用されたフロントスクリプトのビルドツール、 Laravel Mix では、Webpack の HMR (Hot Module Replacement) がデフォルトで利用できます。
(HMRは)画面の再描画すること無しにJSの変更をブラウザに適用してくれる開発ツールです。
Hot Module Replacementの設定と仕組みを理解する – Qiita
Laravel でこれを利用すると、たとえば Vue コンポーネントの変更がリロード無しに反映できます。
Vue コンポーネントにモデル (Entity) を渡す
Laravel で Blade テンプレート上に記述した Vue コンポーネントに Laravel の Model を渡す場合。
{{ hoge }}
を使うと渡した値は e()
によりHTMLエスケープされるが、Vue コンポーネントのディレクティブとしてエスケープされたJSONを渡した場合もちゃんとオブジェクトとしてパースされpropsに入ってくれる。
(そもそもHTMLで属性に e()
した値を渡してもエスケープ前の文字列として扱われるから当然といえば当然)