- 1. 【PHP】【JavaScript】PHPで簡易WebAPI作成 〜 JavaScriptで取得しブラウザに表示させるまで
- 2. 【Laravel9】Policyを使って認可を与える
- 3. 非公開S3のpresignd-urlをonClickで発行しクライアント側でダウンロードさせる
- 4. 【Laravel】フラッシュメッセージが再表示されるのを防ぐ
- 5. 2022-06-24 PHP のコマンドラインアプリケーションにおいて、エラーが表示されない
- 6. Eloquent のN+1問題には Eeger ロード
- 7. Laravel 画像のプレビュー表示
- 8. Laravel の認証・認可パッケージが多すぎてわけわからんので図にまとめた
- 9. PHPの型について
- 10. imagick php laravel 画像に文字を合成
- 11. 【Laravel8】親子テーブルを同時に新規作成・更新・削除する方法
- 12. PHPのforeachで参照渡しを使った後は、unset()しておこう!
- 13. Eloquent のリレーションの使い方
- 14. Laravel プロジェクトの作成からシーダーまで
- 15. 【PHP基礎⑰】配列-1.foreach文
- 16. 【PHP】ビルトインサーバーの使い方
- 17. LaravelでAPI仕様書(OAS)と実装の乖離を簡単に防ぐならSpectatorがおすすめ!
- 18. フォルダを指定してマイグレーションファイルを作成したい
- 19. Laravel UI登録画面で画像保存処理を実装
- 20. Macにiterm2を入れてみた!
【PHP】【JavaScript】PHPで簡易WebAPI作成 〜 JavaScriptで取得しブラウザに表示させるまで
バックエンド:PHP
フロントエンド:JavaScript
で開発する場合に、つなぎ込みの部分がよく分かっていなかったため学習して備忘録として残しました。
つなぎ込みの部分の理解が目的であるため、APIの内容はかなりシンプルです。# ① 簡易WebAPIの実装
“`php:api.php
【Laravel9】Policyを使って認可を与える
## Laravelで認可を与える方法
大きく2つの方法があり、`Gate`を使う方法と`Policy`を使う方法がある。### Gate
特定のモデルに関連していないユーザーのアクションに関してアクセス制限を行う。### Policy
ある特定のモデルに対して行うアクションに関してアクセス制限を行う。
※今回はこちらのPolicyを使って行う## 前提
– Userモデル、Postモデルは既に作成している
– laravel9## PostPolicyファイルを作成する
“`
$ php artisan make:policy PostPolicy
Policy created successfully.
“`
`make:policy`コマンドは、空のポリシークラスを生成する。
リソースの表示、作成、更新、削除に関連するポリシーメソッドのサンプルを含んだクラスを生成する場合は、
下記のようにコマンドの実行時に–modelオプションを指定する。“`
$ php artisan make:policy PostPolicy –model=Post
Po
非公開S3のpresignd-urlをonClickで発行しクライアント側でダウンロードさせる
## やりたいこと
S3に保管されているファイルをwebアプリ上でダウンロードしたいです。
オブジェクトを公開すればS3のURLをリンクするだけですが、
今回はセキュリティに配慮し非公開オブジェクトを扱うこととします。なお今回はLaravel + Vue.jsでの実装ですが、どのフレームワークでも同じだと思いますので他言語の方もご参考ください。
またアップロード時もpresigned-urlが使えるようです。
実装方法を考えてみてください。## やりかた
1. フロントのonClickをトリガーにバックエンドでpresigned-urlを発行する
1. `document.createElement(‘a’)`でaTagを作る。
1. バックエンドから返ってきたpresigned-urlを`aTag.href`に格納し`aTag.click()`でクリックさせる## メリット
サーバーサイドでファイルをダウンロードしフロントエンドへ送り込む方法もありますが、
こちらの方法のほうが以下のようにメリットが多く感じられました。– クライアント側でDLさせるため高速&サーバー
【Laravel】フラッシュメッセージが再表示されるのを防ぐ
## やりたいこと
flashメソッドやwithメソッドを使ってフラッシュメッセージを表示させる際、
「当該ページでフラッシュメッセージを表示」→「他のページに移動」→「ブラウザの戻るボタンで元のページに戻る」
上記を行うと同じフラッシュメッセージが再表示されてしまう。これを防ぎたい。## 結論
以下コードのように、phpで作成したユニーク値をJavaScriptを使用してブラウザのストレージに保存し「一度目の表示かどうか」を判定する。具体的なコードの説明は本記事の最下部に載せています。
“`html:example.blade.php{{session(‘message’)}}