鶏口牛後な日々

心の赴くまま、やりたいことを仕事に。

PHP Laravel

php artisan migrateができず、[PDOException]: Could not Find Driverが出てしまう

エラー[PDOException]: Could not Find Driver 表題のエラーが出てしまいました。 config/database.php の default は、ちゃんと mysql になっている。 .env には、データベースの接続情報を記載している。なんで〜・・・ php-mysql などの、データベースとP…

ApacheのDocumentRootを変えてもLaravelの画面が出てこない時の注意点

ApacheでLaravelを動かすため、本番環境をAWSで用意しています。 Apacheをインストールして、起動します。 Apache 起動 systemctl status httpd で今起動して居るかどうかを確認し、起動していない場合は、 sudo systemctl start httpd で起動させます。 Apa…

AWSにLaravelをインストールしようとするのだが必要なphp関連モジュールがないと怒られまくる

Laravelのインストールに必要なモジュールがない! 開発環境で開発していたプロジェクトは、composerでライブラリ管理をしていました。 Laravelも、 composer.json というファイルで必要なモジュール含めて管理していて、 composer install すれば一気にイン…

AWSでcomposer installしたら[RuntimeException] /var/www/develop/snakle/vendor does not exist and could not be created. がでた

vendorフォルダが生成できないというエラー AWSのEC2でWeb APIを公開しようとしています。 Laravelで作ったプロジェクトなので、EC2の環境構築の際に、composer installをすることで開発環境と同じバージョンのLaravelをインストールしようとしたのですが、 …

AWSでWebサーバ/mysql立ててLaravelで作ったAPI公開までにぶち当たったこととその時に調べたこと

リージョンって何基準で選ぶの? AZによってレイテンシー(遅延)が異なるらしい AZによって価格が異なる。東京だとレイテンシーは少ないが、価格が高い、など。 [参考] AWSソリューションアーキテクトへの道 -AmazonEC2のポイントまとめ- セキュリティグル…

PHP LaravelでMySQLのdumpを定期的に作ってバックアップを取る

やりたいこと サービスの操作履歴をテーブルで保存しているのですが、これは1日にえらい数になるので、できるだけ定期的にdumpを作ってどこか別の場所に保存するようにしたい。 CSVかTSVで吐き出す Apacheのログを保存しておくとか、監査ログを取っておく専…

php Laravel エラー集 [WIP] (個人的備忘録)

ArgumentCountError: Too few arguments to function <ファンクション名> 0 passed and exactly 1 expected これは、「引数、つまりfunction()のこのカッコ内に書くものが、足りませんよ〜」というエラー。 function(引数A, 引数B)と書いているのに、引数Aし…

Enumを使うわけ個人的理解。LaravelでEnum作るライブラリを試してみた

Enumを使うわけ 実は経験が浅く、Enumがなんのために使われているのか、いまいち理解できていなかった。 例えば、 apple という言葉に、 1 という番号を付与する場合、 変数 、 APPLE を用意し、 description を apple 、 value を 1 とする。 そうすること…

php artisan tinkerでDBにユーザーを作る

ユーザー登録APIを作っています。 ログインするときは、 ユーザーアカウント名 と パスワード で認証します。 ログイン機能を試すために、DBに先にユーザーを作ろうと思いました。 どうすればいいか、というと、 php artisan tinker を使います。 これを使う…

Laravel(PHP)メソッド集(個人的勉強記録)[WIP]

bcrypt パスワードなどの重要情報をハッシュをかけるためのヘルパー関数 $password = bcrypt($request->input('password')); Hashing - Laravel - The PHP Framework For Web Artisans filled リクエストに特定の値があるかどうかを調べたい時に使う。 if ($…

毎回キャッシュを読み込まずにページをロードするようにしたい

CSSやJavaScriptで、変更したのに、変更がきかない! あああああぁあ〜 なぜ〜〜〜〜〜えぇぇ〜 という思いをした方も多いのではないでしょうか。 エンジニアあるある。 そのたんびに、キャッシュを消して再読み込み! とかするわけですけれど、エンジニアは…

Laravelのセレクトボックスでバリデーション戻ってきたとき前入力した内容をold()メソッドで表示したい

bladeの @if ディレクティブで書く かっこいい書き方はないようで、@ifディレクティブを使って以下のように書くとできました。 <div class="form-group"> <div class=required>必須</div> <label for="gender">性別を選択してください</label> <select name="gender"> <option value="male" @if(old('gender')=='male') selected @endif>男性</option> </select></div>

PHP Laravelのアップデート画面でcheckboxを操作する

チェックボックスやセレクトボックスの制御は、色々と便利なメソッドが用意されているLaravelでも案外面倒 PHP Laravelで、一度登録した情報の編集画面を作るときに、checkboxやセレクトボックスの挙動を指定するのが、思った以上に面倒だったので、メモして…

PHP Laravelで、電話番号の桁数をざっくりチェックするバリデーションを書きたい

厳密に指定する場合は、カスタムバリデーションを書いてください。 特に、対象となる電話番号の国が絞られる場合は、その国のルールに合わせて厳密に書く方がいいと思います。 ただし、全世界を対象とする場合、8桁から11桁、で、数字で構成されている、とい…

PHP Laravelで日付を日本語式(yyyy年mm月dd日)で表示したい

Laravelというか、これは普通にPHPの関数を使うだけなのですが、 date('Y年m月d日', $date); とすればできます。 $date は日付型出ないといけない。

Laravelでリレーション関係にある親テーブルをアップデートする時、小テーブルも同時にアップデートさせたい

リレーションシップ、まだ慣れていません。 でも、よくあるユーザー情報のアップデート処理するときに、ユーザーに紐づく別テーブル、例えば ユーザーの好きなもの(favorite) という他のテーブルがあったとします。 これも同時にアップデートしたい、という…

PHP Laravelの登録情報のアップデート画面で、情報が変更された時だけsaveする

ユーザー情報など、つらつらとたくさん保存した内容を、編集画面で編集させるということはよくあると思います。 それを保存する際、新しいuserのインスタンスを作って、いちいちまた入れて、一個ずつまた保存するというのは、ソースも多くなりますし、データ…

Laravelのedit/updateフォームでvalidationから1レコードだけ除外する

ユーザー情報の登録について、アップデートしたい場合に、登録時に例えばメールアドレスにバリデーションで unique をつけていた時、アップデート時は、そのメールアドレスはすでにその人のレコードではあるので、ユニークバリデーションから除外したい時っ…

Laravelのedit/updateフォームで取得したデフォルト値を表示しつつ、バリデーションがかかったらold()メソッドで入力した値を表示したい

登録した情報のedit画面では、一度登録した内容をまずは取得してviewに返して表示し、それが変更されたらdatabaseに保存するという流れを取りますよね。 この時、取得した内容をinputに入れ込みつつ、バリデーションがかかったらold()で内容を再表示してほし…

Laravelのedit/updateフォームでなぜか$errorsがundefinedになる

状況説明 ユーザー登録をすれば、ユーザー情報変更するのもお決まりですよね。 そのフォームを作ろうとして、入力後にはバリデーションのチェックもするので、初期入力時のフォームをそのまま転用しようとコピーしたところ、バリデーションもちゃんと聞いて…

Laravelで日付の項目のフォーマットを直したい

日付項目 生年月日などの日付項目はユーザー登録などで定番ですね。 databaseと、表示する形式が違うことも結構あるので、コントローラーのメソッドの中で、viewに返すためにフォーマットを変えたいと思いました。 PHPのメソッド format() を使う 具体的には…

AjaxとMySQLとPHP Laravelで郵便番号から住所検索するボタンを実装する

全体像 めちゃめちゃ大まかには、HTML→データベース→PHP Laravel→JS の順で、それぞれ用意していく必要があります。 もう少しブレイクダウンします。↓ HTMLにフォームを用意し、郵便番号入力欄と住所入力欄と検索ボタンを作る MySQLに、郵便番号と住所のテー…

PHP LaravelとHTMLのinput type="file"タグで複数のファイルを同時にアップロードしたい

私の場合は、画像を最大4枚同時にアップロードし、ストレージに保存するという操作を行いたいと思ったときに課題にぶつかりました。 まず、input type="file"タグは、一つのタグにつき1つしかアップロードできないのが基本です。 multiple="multiple" という…

PHP Laravelで配列をstringに変換したい

これはLaravelではなく、PHPの関数ですが、serializeというのが使えそうです。私は、dd()でダンプして、デバッグで見たい!というときに、arrayだとエラーになるので、stringにしてくれ〜と思ったときに探しました。使い方は簡単。引数に変換したいarrayを入…

Laravelでvalidationがfailした時にMethodNotAllowedHttpExceptionが出まくる(初心者向け)

Laravelで本格的にプログラム書くようになって1ヶ月ほどの初心者です。これ、めちゃめちゃハマりました・・・stackOverflowやLaracast、Qiitaあたりの記事を読み漁りましたが、解決せず。結論としては、このエラーはバリデーションは関係なくて、リダイレク…

Laravelでデバッグのために情報を画面に出力したい(javascriptのconsole.logみたいなことがしたい)

javascriptだと、console.log()で何かとブラウザのコンソールに出力して確認作業しますよね。 こんな感じのことをLaravelでやるのはどうするのかな? と思って調べました。基本は以下で良さそうです。 とにかくその場で見たい時 dd($変数);ddは、dump dieの…

PHP Laravelでリクエストが通らずbladeが表示されないときはCSRFトークンを忘れている可能性あり

Laravel初心者です。 以下のような、超簡単なrouteを書いてみたのに、なぜかエラーが出てしまうという事態に見舞われました。 Route::post('/index', function() { return view('index'); }); 出て来たエラーはこれです。 Throw a method not allowed HTTP e…

HTMLのmetaタグの呪文について一応理解するためのメモ

PHP Laravelのデフォルトで入っている、welcome.blade.phpを使い回しするのですが、metaタグによくわからない呪文が入っていて、あとで聞かれた時のために一応調べたのでメモしておきます。呪文は以下の二種。 <meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"> 1つ目、http-equiv="X-UA-Compatible" ウンタ</meta></meta>…

phpUnitテストの準備

テスト用のDBを準備する(DBを作成し、laravelユーザーがアクセスできるように権限付与する) テスト用のDBの設定を.envに書く、または、.env_testを用意する php artisan make:test でファイルを作成する factory(seederのようなもの)を作る factoryを呼…

ポカミスリスト(個人的備忘録)

気づいて、ウワーーーー自分が恥ずかしい! というミス、ありませんか? すごく悔しくて、オーーーイ! とミスに対して(自分に対して?)ツッコミを入れざるを得ないくらいのやつです。もう絶対にやりたくないので、どうしたらなくなるかな? と思って、ち…