Learn or Die

生涯勉強。Macです。

MySQLへのデータ挿入時にエラーが出る

エラー SQLSTATE[HY000]: General error: 1364 Field 'カラム名' doesn't have a default value 原因 NOT NULLのフィールドにNULLをInsertすることで発生するエラー。 対処法 NULLにならないよう値を入れる エラーが出ているカラムにNULL以外をInsertする。 …

特定の文字列を含むかチェックする

正規表現を使わない場合 strops関数を使う。 strpos、strstr、preg_matchなどの中で最も高速でメモリ消費も少ない。 strposは、該当する文字列が見つからなかった場合は、falseを返す。

スーパーグローバル$_SERVERを参照する

PHPの場合 PHPでサーバーネームを参照する場合は以下の書き方 server; // 要素を指定して参照 request()->server->get('SERVER_NAME');

ルーティングの優先度について

事象 下記のようなルーティングで、/sample/showにアクセスすると404エラーが発生する。

グローバル変数

グローバル変数とは グローバル変数とは、ファイル全体で有効な変数のことを指す。 ファイル内で定義されたグローバル変数は、ファイル内のどの関数からも呼び出して使うことが可能。 ファンクション内でグローバル変数を使うには、「global グローバル変数…

クエリビルダーやEloquentを使ったupdateの戻り値

使用サンプル $this->ary_customer['customerNo'], 'del_flg' => 0 ]) ->first() ->update([ 'password' => $ary_request['newpass'], 'edit_date' => Carbon::now() ]); //->first()を付けることで 、更新成否で条件分岐ができる if($result_update){ echo…

リソースコントローラ

リソースコントローラとは リソースコントローラを使うとアプリの基本的な操作であるCRUD(作成、一覧表示、編集、削除)などのアクションや、そのルーティングが自動的に作成される。 リソースコントローラ作成方法 以下のコマンドを実行 $ php artisan make…

独自のバリデーションルールを追加する

追加方法 クロージャを使用する サイト全体の中で一度しか使用しないルールはこちらで記述すると○。 validate([ 'name' => 'required|string', 'kana' => [ 'required', 'string', function ($attribute, $value, $fail) { if (preg_match('/[^ぁ-んー]/u', …

エラーメッセージのカスタマイズ方法

カスタマイズ方法 ビュー側▼ @if ($errors->any()) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif エラーメッセージをカスタマイズする。 validateメソッドに表示したいメッセージの配列を追加する。 validate([ 'newp…

GETパラメータの受け取り

パラメータ付きのURLからパラメーターの値を取得し、ビューで表示する パラメーター付きURL▼ http://localhost/sample_request?value=aaa Routing▼

パラメータのフォーマットを制約する

正規表現制約 ルートインスタンスのwhereメソッドを使用し、引数に正規表現を指定する。 例)1-12の数字であるパラメータを許可するルート name('mypageHoroscopeDetail')->where('zodiac_id', '[1-12]+'); 複数指定の場合▼

クッキーとセッションの確認と破棄

セッションの確認と破棄 方法①Requestインスタンスを経由する▼ session()->get('customer'); // 指定したデータをセッションから削除する $request->session()->forget($value); 方法②グローバルなヘルパ関数session( )を使用する▼ Illuminate\Session\Sessi…

Laravelで前回の入力値を表示する

old関数 <input type="email" name="email" placeholder="" value="{{ old('email') }}"> oldの引数に、対象のname属性を指定することで、前回の入力値を表示してくれる。 入力エラーの場合など、前の入力値を保持する必要があるときに便利。 編集時など、すでに保存されている値がある場合は、以下のように第二引数にデフォルトの値を設…

DBの値でバリデーションチェックする

exists:テーブル名,カラム名 フィールドの値が、指定されたデータベーステーブルに存在することをバリデートする。 基本的な使用方法 'exists:customer,id' columnオプションを指定しない場合、フィールド名が利用される。 'exists:customer' テーブル名を…

バリデーションalpha_numを指定しても全角文字が通ってしまう問題

問題点 半角英数字以外はエラーにしたいので、バリデーションに「alpha_num」を追加したが、ひらがな等が通ってしまう。 validate([ 'newpass' => 'required | min:8 | alpha_num | confirmed ' ] 解決策:正規表現を使う regexで正規表現を指定することで「…

「パスワードの確認」をバリデーションチェックする方法

使用機会 新規登録時やパスワード変更時に、「パスワード」「パスワード(確認)」でパスワードを入力したとき。 同じパスワードかどうかをチェックする方法 フォームのパスワード(確認用)のname属性を「xxx_confirmation」にする 確認用ではないパスワード…

insertにはcreateメソッドを使う

createメソッド モデルクラスからcreateメソッドを呼ぶことで、「インスタンス作成→属性の代入→データの保存」を一気通貫でやってくれる。 さらに作成したインスタンスを返してくれるのも便利。 createメソッドの使い方 guardedもしくはfillableを指定する

「self::」と「$this」の違い

$this $thisは⾃分⾃⾝のオブジェクトを指す。 クラス内のメンバ変数やメソッドにアクセスする際に使う。 title; } } self:: self::は⾃クラスを指す。 クラス定数、static変数については、インスタンス化せずに使⽤する。 そのため$thisは使⽤せず、代わり…

Laravel のroute には名前をつけたほうがよい理由

->name() Laravelにはルートに名前を付ける機能がある。 route/web.php▼ name('mypageTop'); view側▼

$_SERVERとは

$_SERVERとは $_SERVER は、ヘッダ、パス、スクリプトの位置のような 情報を有する配列。 この配列のエントリは、Web サーバーにより生成される。全ての Web サーバーがこれら全てを提供する保障はない。 $_SERVER['REMOTE_ADDR'] 現在ページをみているユー…

Laravelのリダイレクト方法とfilemtime関数

Laravelのリダイレクト方法 一番簡単なのは、グローバルなredirectヘルパを使用する方法。 route('mypageTop'); パラメータが必要な場合は、routeメソッドの第2引数として渡す。 route('mypageTop', ['id' => 1]); filemtime関数 ファイルの更新時刻を取得…

config関数

config()で設定情報を取得する 指定するキーの先頭はconfigファイル名でその後はドットつなぎで配列の下層を指定することができる。 '新しいサイト名']); 参考サイト readouble.com

asset宣言内の変数

NG これだとエラーになる。 <img class="fortune-img pb-20" src={{ asset('./img/horoscope/seiza-title- {{ $constellation_id }} .png') }} alt=""> OK Bladeタグをネストすることはできない。 パターン2のほうが簡潔で◯。 パターン1 <img class="fortune-img pb-20" src={{ asset('./img/horoscope/seiza-title-' .$constellation_id. '.png') }} alt=""> パターン2

算出プロパティとメソッドのちがい

1. 算出プロパティは引数を持てない 算出プロパティは「()」を伴う呼び出しができないので、引数をもてない。 引数を伴う呼び出しにはメソッドを利用する必要がある。 2. 算出プロパティは取得用途 算出プロパティの用途は、基本的に既存データの加工を伴…

JavaScriptにおける識別子の記法

識別子とは プログラムの中で、変数や関数などに付けられた名前のこと、あるいはインターネットにおけるドメイン名やIPアドレスなどのこと。 命名規則や利用できる文字の種類などもそれぞれ異なる。 記法まとめ JavaScript 記法 表記の例 変数 / メソッド キ…

v-bind - 属性値にJavaScriptを埋め込む

構文 <a v-bind:href="url">詳細はこちら</a> 省略構文 v-bindはよく利用する、という理由から省略構文も用意されている。 <a :href="url">詳細はこちら</a>

Gitコンフリクト解消方法(git mergetool)

プルリクを送ったときにコンフリクトが起きた際の解消手順。 手順 1.ローカルでベースブランチに移動する。(developやmasterなど) 2.ベースブランチでpullしてリモートの変更を取り込む 3.作業ブランチに移動する 4.作業ブランチにて、リベースコマンドでベ…

mcrypt_create_iv

mcrypt_create_ivとは ランダムな文字列を生成する。 PHP 7.1.0 で 非推奨 となり、PHP 7.2.0 で削除 されました。 代替は以下 random_bytes 暗号論的に安全な、疑似ランダムなバイト列を生成する関数。

git clean

git cleanの使い方 1.対象外ファイルを確認する(実行はされない) $ git clean -f PATH 2.作業ディレクトリから追跡対象外のファイルを削除する $ git clean -n カレントディレクトリのファイルを削除 $ git clean -f ディレクトリも削除 $ git clean -df

ドキュメントルート(DocumentRoot)

ドキュメントルートとは ドキュメントルートとは、WEBサーバ上に公開するためのルートディレクトリ。 この場所にファイルを配置することで、インターネット上にサイトが公開される。 ドキュメントルート配下のディレクトリ以外はサイトを設置してもインター…