自動化無しに生活無し

WEB開発関係を中心に備忘録をまとめています

  • LaravelをHerokuにデプロイする【Heroku-postgresql使用】

    LaravelをHerokuにデプロイする。DBにはHerokuPostgresを使用する。 本記事の対象読者はHerokuCLIはインストール済み、基本的なコマンドは習得済みとする。 流れ Herokuからアプリを作る HerokuPostgresを実装 起動用のProcfileを作る ローカルリポジトリとHerokuのリモートリポジトリの関連付け デプロイ 環境変数の設定を施す(多いのでシェルスクリプトを実装 ...
  • Laravelで主キーにUUIDを実装させる方法【laravel-eloquent-uuid】

    主キーにUUIDを使用することで、デフォルトの連番で数値型のIDと違って予測されることがない。これはセキュリティ上、重要なことなのでなるべく開発初期段階で実装したい。 実装方法 UUID実装用のライブラリをcomposerからインストール。 composer require goldspecdigital/laravel-eloquent-uuid:^7.0 ユーザーモデルを書き換える。database/migrations/2014_10_12_000000_create_users_table.phpにて、下記 ...
  • Django・PythonでSendgridを実装しメールを送信する方法【APIキーと2段階認証を利用する】

    Sendgridのパスワードを使用したメール送信が廃止され、APIを使用した2段階認証が強制されるため、ここに対策を記す。本記事はDjango(Python)を対象とした対策について解説する。 django-sendgrid-v5のインストール APIを使用するために、pipにてdjango-sendgrid-v5をインストールさせる。 pip install django-sendgrid-v5 settings.pyにて設定を施す settings.pyの ...
  • 【Laravel】静的ファイルのディレクトリ作るときの注意点【publicのディレクトリ名で即404エラー】

    Laravelで静的ファイルを作る時、アプリごとにCSSとJSを仕分けしたい場合がある。しかし、作るディレクトリ名を間違えれば、たちまち404エラーが出てしまう。 本記事ではLaravelの404エラーの原因のひとつであるパスの衝突について解説する。 Laravelで404エラーが起こる原因 例えば、ルーティングがこんな状態で Route::get('/', function () { return view('welcome'); }); Route::resource("/memo","MemoController"); memoというアプリを作ったとしよう。当然、memoアプリ内で ...
  • laravelでAjax(jQuery)を送信する【POST+DELETE】

    タイトルの通り。laravelにAjax(jQuery)を送信する。コードはLaravelでリクエストのバリデーションを行うを元に作られている。 jQueryを読み込みCSRFトークンをAjax送信時に付せて送信させる まずAjax送信用にjQueryを読み込ませる。それからPOSTリクエストの場合、CSRF対策用のトークンもセットで送信しなければならない。故に、resources/views/bas ...
  • 【Request】Laravelでリクエストのバリデーションを行う【不適切なデータのチェックに】

    コードはLaravelで検索とページネーションを両立させる【ANDとOR検索も】から流用している。現状では不適切な値(文字数オーバー、未入力等)をサーバーに送信すると、そのまま例外処理が発生する。バリデーションを実装させ、例外ではなく前のページにリダイレクトさせる。 対象はlaravel 7.x。 方法は主に2種類ある。コントローラー上にバリデーション処理を設置する方法、フォームリクエストを生成してバリ ...
  • Laravelで検索とページネーションを両立させる【ANDとOR検索も】

    タイトルの通り。laravelにてAND検索とOR検索を実装させつつ、ページネーションも両立させる。コードはlaravelでCRUD簡易掲示板を作る【Restful】から流用している。 まずはAND検索とOR検索を実装させる 流れ的には、スペース区切りのキーワードを送信させ、それをコントロール側で区切り、クエリをビルドする。クエリをビルドする時、AND検索指定であれば、where()の追加、OR検索指 ...
  • 【Django】manage.pyコマンドを追加させる【バッチ処理、常駐プログラムなどに】

    Djangoのmanage.pyにはコマンドを追加することができる。これを利用すれば、アプリディレクトリで定義したモデルをそのまま流用してDBにアクセスしたり、コマンド一発で複雑な処理を終わらせたり、バッチ処理として運用させることも簡単にできる。 manage.pyにコマンドを追加させる まず、任意のアプリディレクトリにmanagement/commands/ディレクトリを作る。 mkdir -p [アプリディレクト ...
  • Laravelで画像とファイルをアップロードする

    タイトルの通り。単にアップロードするだけでなく、MIME属性に基づいたファイルのバリデーションを行い、セキュリティにも配慮する。 なお、本記事はLaravelで検索とページネーションを両立させる【ANDとOR検索も】からコードを流用している。 流れ テーブルに画像パス格納用カラムを追加してマイグレーション モデルに画像パス格納用カラムの名前を追加する バリデーション用のフォームリクエストを定義する コントロー ...
  • 初心者でもlaravel 7.x を使い、45分でCRUD簡易掲示板を作る【Restful対応】

    リハビリがてらlaravelでCRUDに対応した簡易掲示板を作る。この記事の手順に沿ってやれば、45分もあれば作れる。 本記事ではlaravel 7.X系を使用している。 流れ プロジェクトを作る DBはSQliteを読み込むように設定する Restful対応コントローラーを作る ルーティングの設定 モデル定義とマイグレーション実行 リクエストを作る ビューを作る コントローラーの修正 タイムゾーンの修正 プロジェクトを作 ...