【Laravel】モデルに判定用の関数を追加してチェーンメソッドで呼び出す

指定したモデルで管理しているパラメータによって処理を変えたい時があります。 判定に使用するパラメータがbool型であれば、trueかfalseなので特に迷うことはありません。 しかし、int型で複数の状態を管理する場合があります。 int型でパラメータを管理す…

【Amazon SES】SESでメール送信する時に知っておきたい事

Amazon SES(以下、SES)は、メールサーバーにする事が出来ます。 SESに登録したドメインすれば、直接メールを送信することが可能なので、メールサーバーを用意する必要がありません。 (もちろん、要件によってはEC2でメールサーバーを構築したり、AWS以外の…

【AWS EC2】インスタンスに仮装メモリを作る

EC2でサーバーを運用しているのですが、最近メモリ使用率がいっぱいになってしまいアプリケーションが動かないという事がありました。 情報を集めていると、擬似的にメモリを作ってスワップさせる方法に行き着きました。 さて、 今回はEC2インスタンスに仮装…

【Laravel】Requestクラスのルールを動的に変える

フォームを実装していると、下記のように選択状況に応じてバリデーションをするかしないか決めたい時があります。 必須入力の有無であれば、required_ifで対象のinput値を参照して切り替える事が可能です。 readouble.com しかし、日付データを比較するaftte…

【php】DateTimeとstrtotimeを使って特定の時間だったら日時を戻す方法

php

一日のリセット時間が夜の毎日0時であれば特に問題ないのですが、特定の時間にリセットする場合比較方法が少し複雑になります。 例えば、毎日3時にリセットされる場合、次のような方法で比較する事ができます。 format('Y-m-d') . ' ' . $resetTime); // 現…

【Larael】Middlewareで直接Viewを表示する

全てのページで同じような処理を行う場合、各コントロールの__constructに実装するより、Middlewareとして実装した方が便利です。 Middlewareを使えば、値を追加したり、コントローラの処理をする前にリダイレクトさせる事が可能です。 今回は、リダイレクト…

【javascript】押されたボタンから先祖の要素を取得する

プレーンなjavascriptで、押されたボタンを基準に同じグループ内の特定の要素を取得する方法。 とても初歩的ですが、久しぶりにプレーンなjsを触ると忘れているので備忘録として。 See the Pen parent selecter by shibainu (@websandbag) on CodePen.

【Laravel】保存・更新時に特定のカラムを自動で暗号化(復号化)させる

システムを実装する上で、個人情報の暗号化は必ず対応すべき事です。 Laravelの場合、エンクリプタが用意されていますので処理自体は非常に簡単です。 readouble.com しかし、ルートやキー毎に手動で暗号化と復号化処理を入れるのは手間です。 さて、 今回は…

【Laravel】ナビゲーションに現在見ているページの位置情報を反映させる

現在ページの位置情報をフロントに反映させるという場面があります。 現在のURLを取得して解析する事自体は、jsでもphpでも可能なのですが、処理の記述が長くなってしまいがちです。 パンくずであれば、laravel-breadcrumbsというライブラリがあります。 pac…

【Laravel】envファイルの設定値に半角スペースを入れる方法

Laravelの.envファイル内で半角スペースを入れたい場合の対応方法です。 状況 アプリケーションの名前に該当するAPP_NAMEに下記のように設定しました。 APP_NAME=テスト タイトル view内で、次のようにh1にAPP_NAMEの設定値を表示できるようにします。 <h1>{{ co</h1>…

【Laravel】Laravel 5.7以降の未認証ユーザーのリダイレクト実装方法

2018年9月にリリースした5.7以降、Laravelの未認証時のリダイレクトを実装する方法が変わりました。 バージョン5.6以前は、app/Exceptions/Handler.phpのunauthenticated関数を使っており、最近でもその方法で解説する記事も多いです。 今回は、5.7以降の実…

【pug】【Laravel】laravel-mix-pugのタグ属性にPHPの処理を入れる

テンプレートエンジンにpug(jade)を使う場合、テンプレートのタグ属性にPHPの処理を入れるのにコツがいります。 環境 pugテンプレートのコンパイルはwebpackに任せます。 Laravelのプロジェクトを作るとデフォルトでlaravel-mix.jsと言うwebpackの設定ファイ…

【Composer】【Laravel】Laravelのプロジェクトディレクトリ内に独自クラスファイルを追加する方法

Laravelの機能やPHPの組み合わせれば大概の機能は実装できますし、Laravel側で仕様が決まっているので綺麗にかけます。 しかし、時には再現できない機能を実現するために自分でクラスを書いて追加したい時があります。 Laravelの場合、php artisanで関連する…

【Laravel】 5.8系にアップデートしてマイグレーションファイルを自動生成する時に注意する事

久しぶりにLaravelで新しいプロジェクトを作ったのですが、migrateの仕様が変わった部分があったので記事にしてみます。 環境 種類 バージョン laravel 5.8 migrate:modelでマイグレーションファイルも一緒に作った時の挙動について モデルを作成と一緒にマ…

【Amazon ECR】自作したコンテナイメージをAmazon Elastic Container Registryで管理する

開発環境の構築でコンテナを組み合わせて使うことが多いのですが、実際の確認環境にも使用してみようと考えてみました。 今回はAWSの環境にDockerでコンテナを管理する構成をしてみようと思います。 その際に、コンテナの管理をAmazon Elastic Container Reg…

【Docker】LaravelでMySQL8.0を使う

以前、LaravelのMySQL8.0はサポートしていないという記事を書きました。 blog.websandbag.com 2019年6月現在でも状況は同じようです。 認証方式がcaching_sha2_passwordが対応していないのが原因です。 PDOException::("PDO::__construct(): The server requ…

【Docker】MySQLイメージで初期投入するデータベースとアカウントを変更する方法

Webアプリケーションの環境構築する場合、データベースのコンテナとしてはMySQLのイメージを使う事があります。 hub.docker.com MySQLのイメージからコンテナを作る場合、docker-compose.ymlのenviromentを設定すれば、データベースとアカウントを初期投入す…

【Docker】MySQLコンテナで使用するイメージを5系から8系に変える時の注意

MySQLのイメージを5.7と8.0に切り替えた所、MySQLのコンテナが起動できないエラーが発生しましたので、その時の対処方法を記載します。 おそらく、稼働中にMySQLのバージョンを5系からアップグレードしたい場合でも発生する可能性があります。 状況 下記の様…

【Redmine】CentOS7のサーバーにRedmineを導入する(Nginx+Unicron+MySQL)

プロジェクト管理をツールを検討すると、Redmineの名前はよく上がります。 redmine.jp 同じようなサービスにBacklogやAsanaのようなツールがあります。 しかし、無償だけでは不十分だったり、機能を追加しようとすると維持費が割と高いのが悩ましい所です。 …

「NFCでICカード読み込むってどう言うこと?」ってなったので調べてみた

確定申告のために、PaSoRiを購入された方もおられるのではないでしょうか? あれを他の事にも利用できないかと考えたことは無いでしょうか? ソニー SONY 非接触ICカードリーダー/ライター PaSoRi RC-S380出版社/メーカー: ソニー(SONY)発売日: 2012/10/10メ…

【Unity】シーン再読み込み時にDirectionalLightが効かなくなるバグを回避する方法

久しぶりにUnityを触るので復習がてら公式のチュートリアルをやってみました。 その際、シーンを再読み込みするとDirectionalLightが効かない状態になるバグに遭遇しました。 バグの解決方法を載せます。 状況 公式のチュートリアルを参考に勧めましたので、…

【Webフォント】はてなブログにAdobe FontsのWebフォントを適用する

前回投稿したWebフォントの応用になりますが、はてなブログにもWebフォントを追加する事が可能です。 blog.websandbag.com ドメインやページビュー数の縛りが無くなったので、気兼ねなく使えます。 今回は、テーマ本体のスタイルはそのままにして、フォント…

【Webフォント】Adobe Fontsで提供されているフォントをページに適用する方法

最近は、Webフォントありきのウェブサイトも多くなってきました。 以前は、デザイン上、デバイスフォントではない場所を画像文字で代用する事がよくありましたが、alt属性をつける必要があったり、文字サイズの変更に耐えられなかったりコーディング側の負荷…

【GooglePlay】Playゲームのプロフィールを削除してソシャゲの復帰防止

ゲーム依存症は、病気認定されるほど深刻な社会問題になっています。 style.nikkei.com ソシャゲを辞められない原因の一つに、辞め方が複雑というのがあると思います。 ソシャゲに限った話ではありませんが、サービスの辞め方は複雑なものが多く、途中で断念…

【wordpress】【php】WordPress配下外のスクリプトファイルから、WordPressのデータを取得する

WordPress主体のサイトで、WordPressにはない機能を追加したい場合があります。 おそらくですが… 固定ページやテーマのfunction.php等を駆使すれば、大概のアプリケーションは作成できます。 しかし、組み込む事で難易度が上がったり、保守性が落ちる事が考…

【salesforce】【PHP】OAuth認証とデータ取得の方法をまとめてみた

最近、salesforceからデータを取得する機会がありました。 developer.salesforce.com salesforceのAPIの仲介をするライブラリがあるか探してみたのですが、あまり情報がありませんでした。 公式のドキュメントを読み漁って色々知見が溜まったので、一度共有…

【Let's Encrypt】SSL証明書を手動更新する

自動更新ではなく、手動更新する場合の方法です。 記事内で紹介するページについて 本来の公式ページは下記になりますが、ドキュメントは英語です。 letsencrypt.org 本記事では、日本語で和約している下記のサイトから引用します。 非公式と書かれておりま…

【OmniFocus】OmniFocus2からOmniFocus3へのデータ移行

2018年9月にOmniFocus3がリリースされました。 www.omnigroup.com OmniFocus2を使っていたため、OmniFocus3へのアップグレードする事にしました。 その際に、データを移行する必要があったため移行手順を記載します。 OmniSyncServerのアカウント作成 OmniFo…

【AWS】【CloudWatch】異常で止まったインスタンスを自動で再起動させる

最近サーバーの復旧作業を行う機会がありました。 原因は恐らくメモリ不足です。 過去のアクセス数がわかる情報が無かったため最小の構成で構築しましたが、実際に稼働させて見ると耐えられないほどのユーザーが訪れたようです。 冗長化は重要ですね。 さて…

【mac】【php】composerをグローバルにインストールする

最近、PCが破損してしまい色々環境設定をし直しています。 備忘録として記載します。 Laravelのインストールの手順に載っている、laravelコマンドを実行する時にも使います。 インストール 5.5 Laravel 今回は、composer経由でインストールしたlaravelを実行…

©︎2017-2018 WebSandBag