あじちゃんの備忘録。

〜ここはメモ帳です

PHP

phpbrew 7.2系を入れるときのメモに追記〜mysqlもいれる〜

以前、このようなメモを残したけれど明らかにスマートじゃなかった。phpbrewの開発者に怒られそうな使い方をしていたのでちゃんとした方法をやり直したメモ。 blog.azimicat.com ずばりこれです。 +mysql オプションをつけること。コレだけで解決しました。 …

php7.2->7.3へ上げるとき

とりあえず、PHP7.2→7.3をphpbrewを使って入れることに。 必要な手順はこれ 7系のinstall状況を確認 $ brew search php@7==> Formulaephp@7.2 ✔ php@7.3 php@7.4 入れる $ phpbrew install 7.3.19 +default +mysql -- --with-zlib-dir=$(brew --prefix zlib)…

php 7.2 laravel 5.5 起動しない “could not find driver”

laravel 5.5 環境において、php 7.1.33 から php 7.2.9 にあげたところ、初期画面で“could not find driver”が出て正常に起動しなくなってしまった。 それの対処。追記修正しました! blog.azimicat.com 以下元の記事

ルーティングが正しそうなのに死ぬときは post と バリデーションエラーによる redirect の罠

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpExceptionNo message このエラー時に、疑うべきこと。 ルーティング間違い post時のバリデーション落ちによるループエラー → どういうことかというと... controller に post の functio…

php.ini の場所を探すコマンド

PHP

php.ini の場所を探す時のコマンド phpbrew とかを入れていてもこれで検索できる。 $ php -i | grep php.iniConfiguration File (php.ini) Path => /Users/{username}/.phpbrew/php/php-7.1.33/etcLoaded Configuration File => /Users/{username}/.phpbrew/…

phpbrew: システムデフォルトバージョンの切り替え

phpbrew をインストールしたものの切り替えを間違えていた。 use と switch があったのだけれど、help のとおりsystem 全体に適用するには switch を使うこと。 現在のディレクトリだけに一時的に適用するなら use を使う。 use Use php, switch version tem…

phpbrew known で json_decode() 云々のエラーが発生する

$ phpbrew known を実行すると以下のようなエラーが発生しました PHP Fatal error: Uncaught Error: Call to undefined function PhpBrew\json_decode() in phar:///usr/local/bin/phpbrew/src/PhpBrew/ReleaseList.php:50 解決の参考にしたサイト: https:/…

define() を用いた配列定数の定義

PHP

PHP 7.0.xx〜の機能

Null合体演算子(??)について

PHP

PHP7.0.xx〜 null 合体演算子 (??) がシンタックスシュガーとして追加された。 三項演算子とisset()を組み合わせた演算子で、以下のような挙動をする。 第1オペランドが非NULLの値であればそれを返し、 そうでない場合は第2オペランドを返す。

連想配列において特定のindexのみを抜き出して(加工したりして)配列にする処理

PHP

1, 'name' => 'Bob', 'position' => 'Clerk'), array('id' => 2, 'name' => 'Alan', 'position' => 'Manager'), array('id' => 3, 'name' => 'James', 'position' => 'Director', 'hoge' => 'hogeeeeee') ); // array_map()を使って、index=hogeを抽出/加工…

シングルコーテーションとダブルコーテーションの使い分けに気をつけること

PHP

シングルコーテーションは「文字列中の変数を変数値に置換する」 ダブルコーテーションは「文字列中の変数を変数値に置換しない」くらいにおもっていたけど、そういうわけでもなく。 以下のように改行コードなんかの変換も担っているようで、 echoした時とか…

Carbon::addXXX系は元の値を上書くので注意

例 $dt = new Carbon('2019-05-01 09:00:00'); echo $dt.PHP_EOL; // 2019-05-01 09:00:00 echo $dt->addMinutes(10); // 2019-05-01 09:10:00 echo $dt; // 2019-05-01 09:10:00 😞💬addXXX()系は元の値を上書きするので注意すること。

【解決】dump結果とview表示結果が異なる@Laravel 5.6

解決しました 参考リンク 解決方法 Modelに protected $casts = ['id' => 'string']; を追加したことで解決!! 解決までの道筋 dump結果とviewでの表示を見比べて、型がintegerになっているのではと推測 dump($items); dump($items->last()->id); echo $ite…

【Guzzle】POST時のoptionの設定仕方

PHP

APIの条件が以下のようになっていて、JSONでオプションを送ってくれと言われている場合。 条件 Method: POST uri: /{ID} //対象のIDを指定 Media type: application/json //JSONで送ってねと言われている contents: required (array of string) //IDに対して…

正規表現考える

元: /content/hoge/fuga/piyo/ドメイン/hoge.html パターン全体にマッチしたテキスト: /content/hoge/fuga/piyo/ 正規表現: /\/content\/(.?)\/(.?)\/(.*?)\// 正規表現: /^\/([^\/]*\/){4}/ 正規表現: /^\/((.*?)\/){4}/

【Laravel】クエリビルダーでスペース区切りの複数ワード検索を行う

所感とか 所感 考えるのすごい時間かかったのに、寝たら一瞬で思いついた. 睡眠は大事. 大事だと思ったこと ワードをどの要素にどういう条件で絞り込むのかを明確にすること はじめに目的とするSQLを書いてみること 要素ごとにまとめてwhere句を作っていく…

view内での改行の出力

PHP

mysqlを使っていると、改行は\r\nで登録されます. これをviewでそのまま出力({{ $value['str'] }})すると、改行されずに表示されます. 改行をするには以下の対応が必要です. {!! nl2br($value['str']) !!} {!! ~~ !!} bladeで、変数などを埋め込む時に使う…

APIから取得した値を配列に突っ込むまで

PHP

APIからの値の取得(GuzzleHttpをつかう) $base_url,]); //接続 $response = $client->request( 'GET', $path, []); $response_contents = $respon…

【PHP】ファイルの出力

PHP

コーディング中に配列の中身とかを確認したくなる時があるのでメモ. file_put_contents() を使う.

日付フォーマット

PHP

date()とstoredtime()を組み合わせる ただ出力する場合 🙂💬 strtotime()でUnixタイムスタンプを取得し、date()で日付のフォーマットを変更しています。

PHPUnitでテストを行う

Testメソッド作成 makeでTestUnitを作成 $ php artisan make:test [TestUnitName] 🙂💬 作成したTestUnitは[tests/Feature/]配下に配置されるので、機能が分かれている時は[TestUnitName]にディレクトリも追加する. Testメソッドを実装 以下が初期状態

transaction処理中の動きで変数が更新されず嵌った.(解決済み)

これ、try-catch中の変数の変化を取得できてないのかな?と思い検証. {{-- blade --}} @if(session('message')) <ul class="list-group"> <li class="list-group-item list-group-item-success">{{ session('message') }}</li> </ul> @endif //controller //成功チェック $success = false; try { DB::transaction(function () use ($success) { //…

マイグレーションファイルの作成でエラー

以下のファイルを実行 //@migrationファイル public function up() { if (!Schema::hasTable('Test')) { Schema::create('Test', function(Blueprint $table) { $table->engine = "InnoDB"; $table->bigInteger('empId', 20)->unsigned()->comment('従業員ID…

トランザクション処理で詰まった

結論 トランザクション処理では外部で定義したの変数は指定して呼び出す必要がある. 詳細 ざっくり以下のような状態で実行すると... $kinds = ['cat','dog','mouse']; DB::transaction(function (){ //格納データ配列の作成 $data = []; foreach($kinds as $…

連想配列が格納された配列

PHP

$input = ('id' => '52738495' 'name' => 'ねこ' 'birthday' => '2000/01/31'); ↑みたいな連想配列を作りたい。 できた $values = array(100,200,300,400,500); $data = []; //全体の配列 foreach($values as $value) { $item = array('id'=>$value, 'name'=…

【未解決】登録処理がうまくいかない

PHP

こんなデータがあります $kinds = array('みけ','さば','とら','はちわれ','くろ'); これをその他の要素とまとめてやります //動物種類(kind)ごとにデータをまとめる $inputData = []; foreach($kinds as $value) { $item = array( 'kind'=>$value, 'birth…

Laravel Mixを使おう!

laravel mix とは 一言で言うと、 web packの設定を簡単に書くことができるlaravel向けのnpmパッケージ なのですが。これ言われても意味わかんなかったので噛み砕きます。分かる人は飛ばして。 web packはwebコンテンツを構成するJavaScriptやSassなどのリソ…

ヒアドキュメントとNowdoc構文の違い

PHP

関連記事 http://azix.hatenablog.com/entry/2018/05/08/161047 書き方 違いは、終端IDが「''」で括られているかどうかだけ! $text = <<<EOL ここにテキストを入れます EOL; <!-- Nowdoc構文 --> $text = <<<'EOL' ここにテキストを入れます EOL; 違い 出力の結果が変わります 変数が変数として出力されるかどうか</eol>…

メソッドチェーンを利用する

環境や条件 http://localhost:8000/test /htdocs/laravelapp/app/Http/Controllers/Controller.php /htdocs/laravelapp/resources/views/helloworld/index.blade.php /htdocs/laravelapp/app/Http/Middleware/TestMiddleware.php <- これをメソッドチェーン…

ヒアドキュメントについて 〜命名規則とよくあるエラー〜

PHP

命名規則 開始ID,終端IDは同じ名前にする IDはアルファベット大文字・小文字、日本語でもOK(基本はアルファベット大文字) 数字を先頭にしてはいけない 記号は_(アンダースコア)のみ可 よくあるID EOD(End of Document) EOM(End of Message) EOF(End…