タグ

ブックマーク / qiita.com/kd9951 (6)

  • Laravel APIで常にJSONをリクエストするミドルウェア - Qiita

    なにがしたい? APIなのにHTMLエラーが出る APIは、ブラウザで開いてもJSONで返して欲しい WEBとしても、APIとしても、さらっと動くLaravelさん。コントローラでは、WEBはHTMLで、APIはJSONで返すように、コードを分けていることが多いと思いますが、例えばエラーが起きたらどうしていますか? JSONなのに、HTMLのエラー画面が返ってきたりしていませんか? 実は、Laravelは、特に何もしなくてもうまいことやってくれます。 リクエストされているのがHTMLなのか、JSONなのかを自動的に判断して、WEBならHTMLAPIならJSONでエラーを返します。 でも、例えば、APIのエンドポイントをWEBブラウザから試験的に開こうとすると、Laravelは WEBモードだと判断して、エラーハンドリングの挙動が変わります。 そうじゃなくて、APIは何が起ころうと、JSO

    Laravel APIで常にJSONをリクエストするミドルウェア - Qiita
  • フロー図で理解するLaravelバリデータの仕組みと、チーム開発でのケーススタディ - Qiita

    目的 Laravelのバリデーションについてはいろんな記事がありますし、自分もいくつか書きましたが、意外と「仕組み」や「全体像」についての解説記事がないので、いっちょ書いてみるか、という穴埋め係根性でまとめた、勉強用の資料です。 公式ドキュメントに「いくつかの方法」が書かれているけど、なにが違うのか? 独自ルールの追加方法もいろいろあるけど、どこに書いたらうまく管理できるのか? なんとなく書き始めたけど、気づいたらカオスになっていた…。 そんな半年前の自分のような方に贈ります。 目次 こんな内容で構成されています。 基礎編 HTML INPUT フォームを送信したら、入力値とエラーが表示されるまで CONTROLLER バリデーションを実行する3つの方法 INSIDE VALIDATOR バリデータ体は例外を飛ばすだけで、偉いのはエラーハンドラ 応用編 CUSTOM RULE 一括でテス

    フロー図で理解するLaravelバリデータの仕組みと、チーム開発でのケーススタディ - Qiita
  • Laravelの "This action is unauthorized" を変更する - Qiita

    何がしたい? LaravelにはFormRequestやGateといった「特定のユーザーに特定の操作を許可しない」という権限管理機能が備わっていますが、そこで弾かれたときのエラーメッセージが英語です。多言語対応のLaravelさんならそんなのサクッと変更できるでしょ!と思ったのですが、意外とさっくりできず、グーグル先生もなかなか教えてくれなかったので、僭越ながら穴埋め係させていただきます。 ※この画面はAJAXでのHTTPエラーをswalで表示するという、参画しているアプリのフロント画面です。Laravel標準だと黒い画面か白い画面が出ると思います。 Laravel5.5で実装。ソース見る限りではLaravel5.3~Laravel6.0に対応。 結論 例外のハンドラに追加します。メソッドがすでにある場合は、parent::prepareException($e) の前にコードを追加します

    Laravelの "This action is unauthorized" を変更する - Qiita
  • Laravel5.6でログをデータベースに記録する - Qiita

    なにがしたい? Laravel5.6 からログハンドラの追加方法が変わったんですね! そのまま移植したら動かなくて 無駄に時間を費やしました 改めて勉強になりました。 ひとまず記録のために、結論だけ置いておきます。 結論 どんなものができるか? 標準の storage/logs/laravel.log の代わりに、DBにこんな情報が書き込まれていきます。 ロードバランシングしているマルチインスタンス環境で動かしていることを想定しています(でなければDBじゃなくてローカルファイルでも大丈夫ですし)。 14日間で破棄される(と思う)。 設置方法 config これが5.6から新しく導入されたっぽいログ設定ファイル。確かに今までは bootstrap/app.php という根元のファイルに直書きしていたのでキモチワルかった。 // ... 'errorlog' => [ 'driver' =>

    Laravel5.6でログをデータベースに記録する - Qiita
  • Laravelでヘルパ関数をオーバーライドするいろいろな方法とマイベスト【未定義を例外にするconfig関数を作る編】 - Qiita

    TL;DR config() が未定義だったら例外を投げるコピペコードです。 ヘルパに限らず、サービスコンテナをつついてLaravel標準機能を差し替えるケーススタディ。 もともと、ヘルパ関数やファサードは機能拡張・変更しやすい設計になっています。ここがLaravelのすごいところ。解説を試みます。 なにがしたい?

    Laravelでヘルパ関数をオーバーライドするいろいろな方法とマイベスト【未定義を例外にするconfig関数を作る編】 - Qiita
  • Laravel Eloquent でデータベースレコードをコピーする - Qiita

    Laravel でデータベースの1行をカンタンにコピーする方法はありませんか? はい。あります。 こちらに。 http://stackoverflow.com/questions/34257741/laravel-copy-record-and-duplicate-with-new-values なのですが、意訳と補足をさせていただきます。 【基】->replicate() を使う $oldrow = MyModel::find($id); $newrow = $oldrow->replicate(); $newrow->some_column = 'new data'; $newrow->save(); これが基形です。 なのですが、ちょっと疑問が幾つか……。 id は更新しなくて大丈夫なんですか? ついつい、以下のようにやりたくなります(上記のサイトでもやってます)。でないと、同じ

    Laravel Eloquent でデータベースレコードをコピーする - Qiita
  • 1