chevron_left

メインカテゴリーを選択しなおす

cancel
もがき系プログラマの日常 https://kojirooooocks.hatenablog.com/

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

kojirock
フォロー
住所
鶴ヶ島市
出身
西条市
ブログ村参加

2018/02/26

arrow_drop_down
  • DBが複数存在する場合のRefreshDatabaseトレイトを使ったテスト

    はじめに こんばんは。 Laravelでテスト書く際に 最初に必要なSeederを読み込んで 各テストを行いたい場合ってよくあると思いますが、その際は必ず RefreshDatabase トレイトをuseする必要があります。 そのさいDBが複数存在する場合に限りうまくいきません。 色々調べたのですが以下の例のように RefreshDatabase の処理をオーバライドする必要がありそうです。 qiita.com 本題 <?php namespace Tests; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\…

  • Laravelでファイルダウンロード

    はじめに こんばんは。 あんまりダウンロード機能とか作ってなかったのですが、久々にLaravelで作ったので備忘録っときます。 めちゃ短いですが... 本題 <?php namespace App\Http\Controllers; use App\Model\File; use Illuminate\Http\Response; use Illuminate\Routing\ResponseFactory; class DownloadAction { public function __construct(private readonly ResponseFactory $response…

  • phpでQRコード作成

    はじめに こんばんは。 QRコード生成ライブラリはJSでメインで使っていて、あとはGo言語で少しだけやった記憶があったんですが、今回PHPでも使う機会があったので、備忘録残しておきます。 本題 使用したのはこちら github.com 今回のユースケースは、 Laravelでメール通知の際に特定のURLのQRコードを作成して、メールに添付して送りたいってことでした。 <?php use Endroid\QrCode\QrCode; use Endroid\QrCode\Writer\PngWriter; $qrCode = QrCode::create(route('users.answer'…

  • docker-composeでminioが起動したときにバケットを作る

    はじめに こんばんは。 minio使用する際にバケットがないと言われてイラッとしたので、調べてみました。 本題 方法1 minio: image: minio/minio:latest ports: - '${FORWARD_MINIO_PORT:-9001}:9001' - '${FORWARD_MINIO_CONSOLE_PORT:-8900}:8900' environment: MINIO_ROOT_USER: root MINIO_ROOT_PASSWORD: password entrypoint: > /bin/sh -c " mkdir -p /data/minio/bucke…

  • laravelでファイルアップロードのテスト

    はじめに こんばんは。 今回もlaravelネタで簡単な備忘録です。 画像をアップロードするようなアクションのテストを行いたい場合の対応です。 本題 アップロードするアクションは以下のような感じだとします。 <?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use App\Http\Requests\UploadRequest; class UploadController extends Controller { public function __invoke(UploadRequest $…

  • laravelのuuid()をmockする

    はじめに こんばんは。 ちょっとまえに、laravelの uuid() を使用しているコードのテストを行う必要があったので、対応してみました。 簡単ですが備忘録です。 本題 uuid()のコード自体は Illuminate\Support\Str::uuid() を使ってます。 /** * Generate a UUID (version 4). * * @return \Ramsey\Uuid\UuidInterface */ public static function uuid() { return static::$uuidFactory ? call_user_func(static…

  • Laravel Precognitionを試してみた

    はじめに こんばんは。 今回は Laravel Precognitionを試してみました。 readouble.com 試してみたいと思っててなかなか試せずいました。 本題 基本ドキュメントどおりに進めていきます。 自分がやっていたプロジェクトでは vue + inertiaをつかってたので、まずnpmでライブラリをインストールします。 コマンド $ npm install laravel-precognition-vue-inertia バックエンド側では HandlePrecognitiveRequests を使えるように対応します。 route.php use App\Http\Cont…

  • laravelのパスワードバリデーションのuncompromisedを初めて知った

    はじめに こんばんは。 恥ずかしながらシリーズで laravelのパスワードバリデーションの uncompromised を初めて知りました... readouble.com 本題 <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rules\Password; class StoreUserRequest extends FormRequest { protected function rules() { return [ 'pass…

  • Laravelのテストで初回にSeeder読み込みをしたい

    はじめに こんばんは。 またまたLaravelネタです。 RefreshDatabase と $seedプロパティ or $seederプロパティ を使います。 公式にも記載があります。 readouble.com 本題 tests/TestCase.php <?php namespace Tests; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\TestCase as BaseTestCase; abstract class TestCase extends Base…

  • laravelのpaginateでgroupbyもしたい

    はじめに こんばんは。 今回もlaravelネタです。 paginateしつつデータをgroupbyしたいなってときがあって、それを調べた対応です。 本題 元データはこちらでやってみます。 $paginator = new \Illuminate\Pagination\Paginator(collect([ ['userId' => 10, 'type' => 1, 'name' => 'AAA'], ['userId' => 20, 'type' => 2, 'name' => 'BBB'], ['userId' => 30, 'type' => 3, 'name' => 'CCC'], […

  • laravelのFormRequestバリデーションのテスト方法にはassertInvalidを使う

    はじめに こんばんは。 めちゃめちゃ簡単ですが、知らなかったので備忘録です。 本題 readouble.com 今までは assertSessionHasErrors を使って以下みたいに書いてました。 $article = Article::factory()->create(); $response = $this->actingAs(User::factory()->create()) ->post(route('article.update', $article->id), [ 'name' => null, ]); $response->assertStatus(302); $res…

  • laravelのRedirectorのintendedメソッド

    はじめに こんばんは。 何気なく使ってた intended メソッドですが、ふわっと使ってたので、きちんとドキュメントよんでみました。 本題 readouble.com Laravelのリダイレクタが提供するintendedメソッドは、認証ミドルウェアによってインターセプトされる前に、アクセスしようとしたURLへユーザーをリダイレクトします。目的の行き先が使用できない場合のために、このメソッドにはフォールバックURIが指定できます。 実際のメソッドはこちら /** * Create a new redirect response to the previously intended locat…

  • 犯罪心理学者が教える子どもを乗ろう言葉・救う言葉を読んだ

    はじめに こんばんは。 積極的な勉強はまだ手つかずですが、少しでも机に向かって勉強する姿勢を取り戻すために、本を読むようにしています。 とりあえず今回読んだのはこちら。 犯罪心理学者が教える子どもを呪う言葉・救う言葉 (SB新書)作者:出口保行SBクリエイティブAmazon 犯罪等を犯した未成年の子たちをモデルケースに、子どもと親の関わり方で、危険な関わり方等を教えてくれます。 紹介されているモデルケースでは、親子の関わり方がおかしかった結果、窃盗や詐欺、果ては殺人未遂まで犯してしまった という、かなり極端というか、特殊なケースでした。 ただ、節々で 「あぁ。こういう言い方自分もしちゃっている…

  • 40歳になりました。

    こんばんは。 本日ついに40歳になりました。 自分の中ではまだ15歳くらいの気分なのですが、体つきはおっさんそのものかも。 とりあえず実感はありません。 さてさて、40歳で気になるのは以前記事で読んだ「ミッドライフクライシス」です。 news.yahoo.co.jp 中年の危機 めちゃこわいです。 自分の人生やアイデンティティに疑問や不安を抱く状態で、メンタルに大きな影響を及ぼすことがあります。 めちゃこわいです。 自分はそこまでメンタル強い方でもないと思っているので、 中年の危機 のことを考えているだけですでに不安になってきます。 対策としてはざっくり、運動と睡眠ってことみたいですね。 正直…

  • 2024年の目標

    はじめに こんにちは。 2024年は厄年の始まりのkojirockです。 2024年の目標を建てようと思います。 2023年の目標はこちら kojirooooocks.hatenablog.com 2023年の振り返りはこちら kojirooooocks.hatenablog.com 本題 1. 体重を65kgにする 少しリバウンドをして70kgまで戻ってしまいました。 最後の方は運動やめて食事制限だけだったので、それがだめだったのかな...? 今年は少しだけでも運動しつつマイナス-5kgの65kgを目指します。 2. アドベントカレンダーに必ず1つ以上参加する ここ2年全く熱量がわかず参加し…

  • 2023年のまとめ

    はじめに こんばんは。 あけましておめでとうございます。 2023年も本当にお疲れさまでした。 そして毎年恒例2023年の振り返りをやっていきたいと思います。 kojirooooocks.hatenablog.com 本題 1. ダイエットで62kgにする ブログ書く前に測ってみましたが、70kgで残念ながら未達です。 2. 毎月1冊積本を読破する 今年は全く勉強らしい勉強しなかたので全くの未達です。 3. アドベントカレンダーを必ず1件参加する 去年同様全く参加しなかったので、未達です。 終わりに 2023年はここ3, 4年の中で一番何もできなかった年でした。 勉強もやる気にならないし、ダイ…

  • 体調が悪いと気持ちも落ちてくる

    こんばんは。 雑談です。 10月くらいから子供がインフルエンザ + 溶連菌のダブル感染でとんでもない状態になっていたのですが、その後子供は回復し、次は妻・自分がインフルエンザになり、大変な状況になっておりました。 今月ようやく体調不良が落ち着いたと思ったら、子供がまた溶連菌をもらってしまい、僕も2・3日前に発熱して、ダウンしておりました。 年末というのに体の不調が続いてしまって、仕事も勉強もなかなかうまくいかない状況でした。。。 最近本も買ったのですが、やる気が起きず積本しちゃってます。 最後の締めくくりブログもあんまり書く気になれない。 来年はお祓いでも行って、頑張らないとなぁ。

  • LaravelのHasOneOfManyを今更試した

    はじめに こんばんは。今回もLaravelネタです。 結構前から触ってたのに全然気づいてなかったのですが、 1:Nな関係のテーブルに対して擬似的に1:1を定義して取得できる機能がありました。 laravel.com 本題 テーブル定義 CREATE TABLE `users` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `email` varchar(255) NOT NULL COMMENT 'メールアドレス', `password` varchar(255) COMMENT 'パスワード', `created_at` timest…

  • Laravel-PermissionのRoleやPermissionをInertiaに送る

    はじめに こんばんは。 Laravel-Permissionを使用している状態でLaravel + Inertia環境下で、RoleやPermissionを送るための方法を備忘録で残しておきます。 本題 方法は簡単で、HandleInertiaRequests でグローバルに送るのがよさそうです。 <?php namespace App\Http\Middleware; use App\Http\Resources\AuthResource; use App\Models\User; use Illuminate\Http\Request; use Inertia\Middleware; cl…

  • Laravel+Inertiaでのsentry設定

    はじめに こんばんは。 Laravel + Inertia環境で Sentryを使用することがあったので、めっちゃ簡単ですが設定方法を備忘録で残しておきます。 本番 やり方はとっても簡単で、 resources/js/app.ts に記載するだけです。 import "./bootstrap"; import "../css/app.css"; import { createInertiaApp } from "@inertiajs/vue3"; import * as Sentry from "@sentry/vue"; import { resolvePageComponent } fro…

  • laravel-permissionで関連テーブルのprimary keyをuuidにしたい

    はじめに こんばんは。 laravel-permissionを使用する際に専用のマイグレーションを実行すると思いますが、その各テーブルのprimary keyを通常のbig integerからuuidに変更する対応をしたので備忘録です。 本題 対応は以下を見れば大丈夫。 spatie.be 基本的に $this->bigIncrements となっている部分を $this->uuid となる感じです。 Model側は 他のModel同様に HasUuidsをuseするだけです。 Role.php <?php namespace App\Models; use Illuminate\Databa…

  • vanilla-autokanaを使ってみた

    はじめに こんばんは。 今回は vanilla-autokanaを使ってみました。 日本語入力すると、対応するカタカナが該当のフォームに入力される的なやつです。 github.com 今回は vueを使用しているプロジェクトで導入しました。 参考サイト code-enj.app 本題 コードはざっくりこんな感じ。 <script lang="ts" setup> import { useForm } from "@inertiajs/vue3"; import * as AutoKana from "vanilla-autokana"; import { onMounted, ref } fr…

  • Inertia利用下で flashMessageを送りたい

    はじめに こんにちは。 よく以下みたいな感じで リダイレクト時にflashMesageをセットするようなときってあると思います。 session()->flash('success_message', 'OKです!'); Inertiaを利用している状況で このセットした flashMessageをフロントに渡す際に対応した備忘録です。 こちらのページを参考にしました。 https://laracasts.com/discuss/channels/inertia/jetstream-inertiajs-how-to-return-back-with 本題 最初にController側でflas…

  • laravelのwhereUuid知らなかった

    こんばんは。 恥ずかしながらしなかった備忘録です。 ルートパラメータの成約でよく whereとかを使うと思います。 こんな感じの。 Route::get('/user/{id}', function (Request $request, int $id) { return 'User ' . $id; })->where('id', '[0-9]+'); ← これ idを指定する場合は、primarykeyを指定する感じが多いのかなと思うので、まさに例で書いたような ->where('id', '[0-9]+'); みたいにしちゃうと思います。 int型なら一旦これでもいいかなと思うのですが、…

  • Inertia利用下でfeatureテストを書く

    はじめに こんにちは。 現在、Inertia利用下のプロジェクトでテストを書いてます。 書き方はそんな難しくないです。 本題 <?php namespace Tests\Feature; use Inertia\Testing\AssertableInertia; use Tests\TestCase; class ExampleControllerTest extends TestCase { public function test_invoke(): void { $this->get('example') ->assertInertia(static fn (AssertableIne…

  • laravelのpintを初めて知った。

    はじめに こんばんは。 皆さん pintしってましたか?自分は最近まで全く知りませんでした。。。 readouble.com pintを知らずに頑張って php-cs-fixer だったり phpmd だったりを独自導入してましたが、laravelプロジェクトだったらもうこれ一択でいいなとか思いました。 本題 laravel9以上だったらlaravelと一緒にインストールされているので特別なにかする必要ないようです。 ベースは php-cs-fixer です。 基本はこれでOK $ ./vendor/bin/pint % ./vendor/bin/pint ..................…

  • write-blog-every-weekの通知プログラムを更新しました

    こんばんは。 ただの報告ですが、ついに write-blog-every-week のプログラムを更新しました。 github見てみたら 4年前くらいだったので久しぶりの更新です。 旧ロジックは archiveして、新たにレポジトリを作りました。 旧ロジック github.com 新ロジック github.com 旧ロジックはGoで作りましたが、新ロジックはTSでつくりました。 あとはインフラ系も AWS SAM をつかってコード管理しています。 もともとメンバーの方と一緒につくろうとしていたのですが、自分の仕事とプライベートが忙しくなってしまい、時間が取れず足を引っ張りまくって、頓挫させてし…

  • ShiftItを卒業してHammerspoonをインストールした

    はじめに こんにちは。 画面分割アプリつかってますか? 僕はだいぶ前から shiftIt を使用していました。 github.com ただ、なんか最近うまく動かないときが続いており、気づくと応答なしになることが多くなってました。 githubみると、そもそもだいぶメンテされてないぞとなってたので、代替品を調べてたら他にも考えた方がいらっしゃいました。 kawase-k.hatenablog.com いいのがありました。 それで Hammerspoon となるいい第かえツールがありました。 www.hammerspoon.org shiftIt ライクに動かせるようにインストール後、設定ファイル…

  • laravelのResourceCollectionで追加データを送りたい

    はじめに こんばんは。 めちゃ簡単な備忘録です。 ResourceCollectionで data meta 以外に新たにデータを追加したい・または 元のデータに更にデータを追加したい場合の対応です。 readouble.com 本番 簡単な話なんですが additional() を使えばOKです。 以下みたいな感じ。 $resources = new ResourceCollection($collection); $resources->additional([ 'aaaa' => 'AAAA', 'bbbb' => 'BBBB', 'cccc' => 'CCCC', ]); 配列よりクラ…

  • Vue datepickerをlaravel + Inertia環境で使用してみた

    はじめに こんばんは。 今回は Vue datepickerをlaravel + Inertia 環境上で使用したので備忘録っときます。 といっても変な使い方はしてないので、めちゃ簡単でした。 vue3datepicker.com 本題 1. まずはインストール $ npm install @vuepic/vue-datepicker 2. 次は初期設定 cssの設定をします。デフォルトだと resources/css/main.css だと思います。 @import "@vuepic/vue-datepicker/dist/main.css"; vueにuseします。デフォルトだと reso…

  • inertiajsで404ページを出したい

    はじめに こんばんは。 さいきんはInertiajsを使っています僕です。 今回は。inertiajs使用下で404ページを表示する方法です。 基本的に公式のままやればOKです。 inertiajs.com 本題 app/Exceptions/Hander.php /** * @param $request * @param Throwable $e * @return JsonResponse RedirectResponse Response * @throws Throwable */ public function render($request, Throwable $e) { $r…

  • laravelのResourceCollectionのpaginationデータの返却値をいじりたい

    こんばんは。 最近よく laravelさわってます。 paginationデータを ResourceCollectionで返却すると以下みたいなデータが返って来ると思います。 { "data": [ { "id": 1, "name": "Eladio Schroeder Sr.", "email": "therese28@example.com" }, { "id": 2, "name": "Liliana Mayert", "email": "evandervort@example.com" } ], "links":{ "first": "http://example.com/users…

  • CarbonPeriod知らなかった

    はじめに こんばんは。 Carbonよく使っているのですが、 最近 CarbonPeriodの存在を知りました。 github.com 本題 <?php use Carbon\CarbonImmutable; use Carbon\CarbonPeriodImmutable; $period = CarbonPeriodImmutable::create( CarbonImmutable::now()->startOfMonth(), CarbonImmutable::now()->endOfMonth(), ); dd(array_map( static fn(CarbonImmutable…

  • laravel10からdatesプロパティは削除されていた

    はじめに こんばんは。 めっちゃ簡単な話なんですが、最近知ったので備忘録。 本題 laravel10から $dates プロパティが削除されてました。 readouble.com laraveldaily.com これからは $casts プロパティに統一されているようです。 まぁ僕は前から $casts の方を使ってたので、きにしてなかったんですけどね。 <?php class User extends Authenticatable { protected $fillable = [ 'name', 'email', 'last_login_at', ]; protected $casts…

  • laravelのcastsでenumをセットする

    はじめに こんばんは。 今回も簡単な laravelの備忘録です。 最近はphp8.1のenumを使うパターンをよく使う事が増えてきたのですが、laravelでは $casts でenumをセットしてくれるようになってるみたいなのでやってみました。 本題 laravel.com Enum <?php namespace App\Models\Enums; enum Status: int { case REQUESTING = 1; case REJECT = 2; case ACCEPT = 3; } Eloquent <?php namespace App\Models; use App\…

  • 家族中にコロナが蔓延した

    はじめまして。 先日僕がコロナになったというブログを書きました。 kojirooooocks.hatenablog.com 僕はやっと収まって約一ヶ月、今度は家族が続々とコロナになっていきました。 まずは一緒に住んでいる祖父母。 「喉がいたいなぁ」という一言でビクッとしましたが、確認してもらうとバッチリコロナ感染。 最初に祖父がかかり、次に看病していた祖母がかかりました。 一緒に住んでたので1F, 2Fで完全に分かれて半隔離状態で過ごしてもらったのですが、その一週間後、今度は子供が感染。 最後は、子供を看病してくれていた妻が4日前に感染。 完全に僕のコロナから始まった家族全員蔓延でした... …

  • phpstanの"no value type specified in iterable type array" の対応方法

    はじめに こんばんは。 phpstan使ってますか? 自分はLaravelのお仕事を受けることが多く、その現場では larastanとして導入されている事が多いです。 個人的によく怒られるエラーの代表として no value type specified in iterable type array があるかなと思ってます。 配列の中身ちゃんと定義してね。ってやつです。 基本的にはちゃんと書くと思うんですが、ちょっとここは除外したいなーってときもあると思います。 たとえば Laravel の FormRequestクラスの rules() とか attributes() とかです。 配列をかえ…

  • jsで日付入力フォームのために年・月・日の値を作成したい

    はじめに こんばんは。 生年月日の入力フォームを作成する要件がありまして、最初はデザイン的に適したdate pickerライブラリを使おうと思っていました。 ただ、提案したどのライブラリも 入力側がミスしすそう、または操作しづらそうという意見が多く、極力シンプルに 年・月・日がすべて分かれたプルダウンメニューを作るという形になりました。 今まで生年月日入力は date pickerとかに任せちゃってたので、作ろうとしたちょっとだけハマりました。 めちゃめちゃ簡単な実装なんですが、いつものように備忘録しときます。 本題 年の実装 1980年 〜 今年までの年の情報を作るスクリプトです。 0から始…

  • コロナになって2週間くらい寝込んでいた

    こんばんは。 雑日常ブログです。 7月の12日くらいからコロナにかかってしまい、完全にダウンしていました。 妻にも感染して、子供だけ祖父母宅に退避してもらって、夫婦仲良くダウンしてました。 よく言われる味覚や嗅覚が効かなくなるみたいなものは僕にはなかったですが、とにかく咳と喉の痛みがひどかったです。 タイミング悪く帰省していたタイミングでかかってしまったので、実家から車で自宅へ帰るのにも、めちゃめちゃ休みながら帰りました。 せっかくの帰省だったのに90%以上は寝て過ごしていました... まだ微妙に咳が出ますが、ようやく体調が復活してきたので、仕事も復帰しはじめています。 ただ、まるまる2週間く…

  • 管理画面用・フロント用にInertiaのルートを分ける

    はじめに こんばんは。 Laravelで使うInertiaで管理画面用・フロント用でルートを分けたい時がありまして、調べて対応しました。 めっちゃ簡単ですが、備忘録です。 本題 対応するのは、Middlewareの HandleInertiaRequests です。 public function rootView(Request $request): string { if ($request->route()->getPrefix() === 'admin') { // admin root return 'admin_app'; } return $this->rootView; } こ…

  • cognitoでsignup後、smsのcode認証

    はじめに こんばんは。 最近 cognitoを使って、認証等を勉強中です。 そんな中で流れでsignupして code認証する流れをphpで作ってたので、備忘録で残しておきます。 本題 登録 $client = new CognitoIdentityProviderClient([ 'version' => env('AWS_COGNITO_VERSION'), 'region' => env('AWS_DEFAULT_REGION'), 'credentials' => [ 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SEC…

  • mockserverをmockできるAPIサーバを作る

    はじめに こんばんは。 今回は mockサーバーを作った際の備忘録です。 ローカル開発のさいに実際に通信せずにmockできるようにするためにdockerで作ります。 色々あるみたいですが、今回作ったのは この mockserver github.com さっそくやってみます。 本題 いきなりコード docker-compose.yml version: '3' services: mockServer: platform: linux/amd64 image: mockserver/mockserver:latest ports: - 1080:1080 environment: MOCKSE…

  • 最近早起きしています。

    こんばんは。 最近早起きを始めた僕です。 というのも、副業の仕事を初めたのと、運動・勉強とやりたいことがいっぱいあり、1日のスケジュールをキチンと決めないと、時間が足りなくなってしまったからです。 仕事 運動 勉強 副業 と1日のうちにやりたいことがいっぱいありすぎるんです。。。 最初は、仕事をして子供が寝たあと、夜間を使ってこれらをさばいてたのですが、どうにも睡眠時間が足りず次の日のパフォーマンスが微妙になってました。 なので、これは思い切って朝から稼働しようと思った次第です。 今週から始めたこのスケジュールは、一応寝落ちせずになんとか続いております。 ちなみにこんな感じのスケジュールです。…

  • tblsでmermaid出力ができるようになってた

    はじめに こんばんは。 k1low.hatenablog.com 個人的にすごいニュースでした! github が mermaidを表示できるようになってたから、ぜひ tblsでもmermaid表示できるようにしてほしいなーと思ってたらなってました!! 本題 なんか適当にテーブル追加してみます。 create table users ( id int unsigned NOT NULL AUTO_INCREMENT, email varchar(255) NOT NULL, password varchar(255) NOT NULL, created_at timestamp, update…

  • nuxt-basic-auth-moduleで簡単basic認証 2

    はじめに こんばんは。 めっちゃ簡単な備忘録ですが、以前の記事の続きになります。 kojirooooocks.hatenablog.com 本題 全体的にbasic認証をかけて、一部分だけbasic認証を突破させるというパターンがあると思います。 たとえば ヘルスチェックとか。 そういった場合に nuxt-basic-auth-moduleの match 設定を使います。 nuxt.config.js basic: { name: 'user_name', pass: 'password', enabled: process.env.environment === 'staging' // ス…

  • Laravelのタスクで多重起動を避ける

    はじめに こんばんは。 なんか毎回調べてるので、今回も自分の備忘録用。 Laravelのタスク起動で多重起動を避ける方法 readouble.com 本題 コードはこちら $schedule->command('emails:send')->withoutOverlapping(); withoutOverlapping() を宣言することでそのコマンドが実行中のときは追加で起動するのを避けてくれます。 単一サーバーでしか実行させない宣言の onOneServer() はよく使っていたのですが、今回2分毎くらいで結構重めのバッチを実行するという作業があり、終わってない可能性があったので、こちら…

  • LaravelのXSRF-TOKENの名前を変える

    はじめに こんばんは。 今回、laravelのXSRF-TOKENクッキーの名前を変えるために色々調べた備忘録です。 Staging環境, Production環境でTokenの名前がぶつかって token mismatchエラーが出てしまっていました。 この解決策が参考サイトに書かれていました。 参考サイト techblog.roxx.co.jp 本題 <?php declare(strict_types=1); namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken a…

  • laravelのcollectionでgroupbyしつつpluck & uniqueしたい

    はじめに こんばんは。 めっちゃ簡単な備忘録です。 本題 さっそくコード UserPlan::all() ->groupBy('plan_id') ->map(static fn(Collection $c) => $c->pluck('type')->unique()) ->toArray(); こんな感じ。 groupBy で集計したあと、mapしてやりたい処理を行う感じです。 めっちゃ簡単ですけど、 今まで map って Eloquent が入ってくると思ってて、Collectionが取れるのは知らなかったです。 勉強になりました。 終わりに 簡単なものでしたが、とりあえず、これだけ..…

  • phpspreadsheetでは checkboxの値を取得できない?

    はじめに こんばんは。 phpspreadsheetを久々に触る機会があって、ちょっと悩んで、結局できなかったので悩んだ結果を備忘録しておきます。 本題 今回 phpspreadsheetでcheckboxの値を取りたいという感じだったのですが、色々調べて取れませんでした... forums.phpfreaks.com いろいろ同じように悩んでいる方がいたのですが、やっぱり取れないみたいです。 で、僕が対応したのは以下のやり方。 根本解決にはなってないんですが、こうすれば、とれます。 チェックボックスのコントロールの書式設定から リンクするセル を選択 任意のセルを選択して完了 チェックボック…

  • mysqlでテーブル名とテーブルコメントを一覧でみたい

    はじめに こんばんは。 めちゃめちゃかんたんな備忘録です。 開発進んでテーブル数が増えたときに、どのテーブルが何かわかんなくなるときがあります。 そんなときにテーブル名とテーブルコメントが並んで表示されたらわかりやすいです。 そんなやり方あるかなぁ? とおもって調べたらありました。 本題 SQLはこちら SELECT table_name, table_comment FROM information_schema.tables WHERE table_schema = database() and `TABLE_NAME` LIKE 'user_%' information_schema.t…

  • docker-composeでコンテナのIPを固定にする

    はじめに こんばんは。 めっちゃかんたんな備忘録です。 dockerで立ち上げたコンテナのIPを固定にしたかったので、調べて対応してみました。 参考サイト zaki-hmkc.hatenablog.com 本題 version: '3' services: web: build: ./docker/app container_name: web volumes: - .:/var/www/html/:cached networks: default: ipv4_address: 172.24.0.100 networks: default: driver: bridge ipam: drive…

  • minioを設定した

    はじめに こんばんは。 n番煎じですが、とあるlaravel案件でローカル開発時でもファイルアップする際にS3にちょくで上げてる案件があったので、今回minioを設定しました。 使っているのが古めのバージョンだったのでググって出てくる記事ではうまくできなかったので、一応備忘録として上げておきます。 本題 version PHP 7.2 Laravel: 5系 docker-compose.yml minio: platform: linux/x86_64 container_name: minio image: quay.io/minio/minio:latest ports: - 9000:…

  • Chart.jsの凡例の動きのままクリック時の処理を追加したい

    はじめに こんばんは。 最近 Chart.jsを触ってるのですが、少しだけ迷って調べた部分があったので、備忘録しておきます。 本題 サンプルのコード <!DOCTYPE html> <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.2.1/chart.umd.js"></script> </head> <body> <div> <canvas id="chart"></canvas> </div> <script> var ctx = document.getElementById('cha…

  • bigqueryのテーブルをコピーする

    はじめに こんばんは。 最近 BigQueryを触ってるんですが、コンソール上でできることと、クエリを使ってできることが結構違ったので、備忘録しておきます。 本題 1. テーブルのコピー CREATE TABLE project_name.datase_name.copy_table_name CLONE project_name.datase_name.origin_table_name; 2. テーブル名の変更 ALTER TABLE project_name.datase_name.table_name RENAME TO rename_table_name; 3 データセット名の変更 …

  • axiosでの通信時にキャメルケース化・スネークケース化の処理を混ぜる

    はじめに こんばんは。 axiosでフロントからバックエンドと通信する際にパラメータを渡すと思います。 その際に、パラメータのkey名ってスネークケースで渡して、スネークケースで受け取りたいときってあると思います。 また、その後バックエンドからフロントエンドにパラメータを返す際に、フロントエンドではキャメルケースで扱いたい時があると思います。 そんなときに、アプリケーション側ではあんまり気にせず、対応する方法を備忘録で残しておきます。 本題 今回は humps を使います。 github.com この humpsを使ってフロントから渡す際はスネークケース化, バックエンドから返ってくる際はキャ…

  • storybookでelement-plusを適用する

    はじめに こんばんは。 めっちゃ短い 備忘録です。 StoryBookでElement-Plusを適用する方法を調べました。 バージョン storybook => 6.5.16 element-plus => 2.3 本題 その名もズバリなものがありました。 stackoverflow.com # preview.js import { app } from '@storybook/vue3'; import ElementPlus from 'element-plus'; import 'element-plus/dist/index.css'; app.use(ElementPlus) 前…

  • phpからBigQueryへ保存

    はじめに こんばんは。 今までBigQuery色々触ってまして、PHPからBigQueryってそういえば触ったことなかったですが、今回触る事があったので、備忘録残しときます。 本題 github.com インストール $ composer require google/cloud-bigquery データ追加 ※ 事前にdataset・tableは作成済み $client = new BigQueryClient([ 'keyFilePath' => config('bigquery.key_file_path'), 'projectId' => config('bigquery.projec…

  • storybook+vue3でpiniaを使う

    はじめに こんばんは。 仕事でstorybookを使う機会があり、piniaも同時に使うパターンが有り、色々調べた結果の備忘録です。 本題 やることは簡単で、以下を設定するだけ // preview.js import { app } from '@storybook/vue3' import { createPinia } from 'pinia' app.use(createPinia()) export const parameters = { actions: { argTypesRegex: "^on[A-Z].*" }, controls: { matchers: { color:…

  • LaravelのModelの主キーを文字列型にする

    はじめに こんばんは。 知らなかったんかい!という簡単備忘録です。 タイトルの通り Laravelで使用する主キーを整数型ではなく文字列型に設定する方法です。 本題 答えはこちら <?php namespace App\Models; use Illuminate\Database\Eloquent\Model; final class TargetModel extends Model { public $incrementing = false; // 自動増分しない protected $keyType = 'string'; // 自動増分IDのデータ型をstringへ指定 } どちら…

  • AWS App Runnerの環境変数に SSM Parameter Storeを設定できるようになった!!

    はじめに こんばんは。 めちゃめちゃテンション上がったので駆け足で備忘録です。 qiita.com まじか! ということで試してみました。 本題 選択できるようになってます! こんな感じで設定できました。 設定値は以下のような感じ。 arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter_name> 環境変数を設定したあとはインスタンスロールを設定します。 ここで設定する インスタンスロールは新たに作成します。 僕は参考にさせていただいたものをそのまま使わせてもらいました。 終わりに バッチリ SSM Parameter Store…

  • nuxt-basic-auth-moduleで簡単basic認証

    はじめに こんばんは。 めちゃめちゃ簡単にnuxtでbasic認証をかけられたので備忘録です。 本題 www.npmjs.com ほぼほぼチュートリアル通りです。 僕が試した環境は nuxt2です。 install $ yarn add nuxt-basic-auth-module setting 設定もめちゃめちゃ簡単で、 nuxt.config.js の設定に以下を追加。 // モジュール読み込み modules: [ 'nuxt-basic-auth-module' ], // basic認証の設定 basic: { name: '******', pass: '******', ena…

  • stripeの請求書を日本語に変更

    はじめに 最近stripeを使ってみているのですが、請求書を作成する際、英語での表示になってしまい、これを解決するにはどうすればいいか調べてたのですが、やり方が分かったので、備忘録です。 本題 コードはこちら $client = new StripeClient(config('invoice.stripe.secret_key')); $client->customers->create([ 'name' => 'client name' 'email' => 'client email', 'metadata' => ['user_id' => $userId], 'preferred_l…

  • github action上で別レポジトリに対して、ブランチを切り替えたり、commit & mergeしてpushしたり...

    はじめに こんばんは。 とある案件で github action上で 別レポジトリをcloneして、もろもろ操作を行うというものがあったので、備忘録として残しておきます。 本題 対応した方法は以下 - name: Clone For Main Branch uses: actions/checkout@v3 with: repository: xxxxx/repo_a token: ${{ secret.github_token }} path: repo_a fetch-depth: 0 ← depthは0指定 - name: Edit run: cd ${{ github.worksp…

  • laravelのmergeBindings()はちょっと使いづらかった

    はじめに こんばんは。 最近laravelの mergeBindings() を使う機会がありましたが、うまく使えなかったので備忘録です。 参考サイトは以下 qiita.com 本題 条件付きのサブクエリを作る必要があったのですが自分の場合、mergeBindings()ではうまくいきませんでした。 参考サイトで紹介されている マージする順番も気をつける必要がありますので注意してください。 という話なのかな? どんな状況になったかというと、bindingされている順番が崩れてしまいました。 そんな感じで自分が解決した方法はこちら。 private function createSubQuery…

  • workflow_callを使ってgithub actionのymlを分割する

    はじめに こんばんは。 最近github actionの知見が少しだけ溜まった僕です。 github actionやってるとymlがすごい量になって、めちゃんこみにくくなりますよね。 うまいこと分割できないかなと調べたら、いいやりかたあったので、備忘録で残しておきます。 本題 公式のドキュメントはこちら docs.github.com workflow_call を使う感じです。 もととなる ymlはこちら main.yml uses: ./.github/workflows/deploy.yml deploy.yml name: deploy on: workflow_call: jobs:…

  • github actionの失敗時にslack通知を行う

    はじめに あけましておめでとうございます(2回目) 新年早々、高熱・そして指の怪我で意図せず1月中旬くらいまで休む羽目になりました。 今回も簡単な備忘録 去年の年末はずーっと github actionを触ってましたが、失敗した際に slackに通知したいなと思い、調べてやってみました。 本題 実際のコードはこちら - name: Failure Notification if: ${{ failure() }} uses: slackapi/slack-github-action@v1.23.0 with: payload: { "blocks": [ { "type": "sectio…

  • 2023年の目標

    こんにちは。 新年から気管支炎・突き指等をして厄年でもないのにツイてないkojirockです。 kojirooooocks.hatenablog.com 2023年の目標を立てようと思います。 1. ダイエットで62kgにする 去年で76kg -> 68kgまでダイエットに成功したので次は肥満体重からの脱却ということで 62kgまでを目標にします。 去年の段階で一番ダイエット成功した際は 65.6kgまで戻すことが出来たので行けそうです! (ちなみに現状の体重は年末年始で食いすぎたので69.8kg...) 2. 毎月1冊積本を読破する 結局去年も積本が増えただけだったので今年からは計画的に1月…

  • 2022年のまとめ

    こんばんは。 あけましておめでとうございます。 2022年も本当にお疲れさまでした。 そして毎年恒例2022年の振り返りをやっていきたいと思います。 kojirooooocks.hatenablog.com ブログ数年間51件を目指す => 年間では52件で一応クリア(内容は微妙だけど...) 12月のアドベントカレンダブログ(3件) => ✗ 今年は全くやってません。 アドベントカレンダー参加数は3件 => ✗ 今年は全くやってません。 資格を1種類以上取得する => ✗ 全くやりませんでした。 積本を8冊以上読破する => ✗よりの△ 3冊しか読めませんでした... ダイエットで60キロ台…

  • github actionでconfigure-aws-credentialsを使うときに警告が出てた

    はじめに こんばんは。 頑張って github actionでデプロイできる環境を構築中です。 今回は簡単な報告 github actionからawsの操作を行うためによく使う aws-actions/configure-aws-credentials が警告を吐いていたので調べました。 本題 aws-actions/configure-aws-credentials を使うとこんな警告が出てました。 なんだなんだ?とみてみると READMEにこんな文言が NOTICE: node12 deprecation warning GitHub actions has recently starte…

  • github actionで環境変数を動的に設定する

    はじめに こんばんは。 インフラ素人ながら頑張って構築を頑張っています。 今回はその際にちょっと学んだめちゃめちゃかんたんなtips 本題 リリースするとき、masterにマージされた段階で github action からデプロイをしたいなと思って、ある操作をしたかったんですが、その際にある値をgithub action の環境変数に代入したい欲求が出てきました。 そんなこと動的にできるのかなぁ?と思って調べてたんですが、ありました。 https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github…

  • flutterはじめてみた

    はじめに こんばんは。 今回はflutter触り始めてみました。 教材はこちら WEB+DB PRESS Vol.130技術評論社Amazon とりあえず動かすところまで。 本題 インストール 自分はmacなので公式ページの言うとおりに落としました。 バージョンは以下 $ flutter --version Flutter 3.3.4 • channel stable • https://github.com/flutter/flutter.git Framework • revision eb6d86ee27 (9 weeks ago) • 2022-10-04 22:31:45 -0700…

  • grepで対象が見つからなかったときに終了させたくない

    はじめに こんにちは。 今日も簡単な備忘録です。 最近案件で複数のレポジトリ(10個)を扱うプロジェクトを触っています。 ただ、ジョインしたのはつい最近でまだまだ各レポジトリのことを知りません。 レポジトリのボリュームもそれぞれなかなかのものです。 なので「ここの文言〇〇から✗✗に変更してください」 と言われても探すのが大変。 プロジェクトごとに毎回git grepとか打つのはとても面倒。 なので Makefile作って make grep ○○ とかで全プロジェクト git grepしたいと思って作ったんですが、 grep は見つからなかったとき エラーステータスを返してきます。 これをなん…

  • playwrightをgithub actionで動かす

    はじめに こんにちは。 前回からplaywrightのかんたんなネタです。 kojirooooocks.hatenablog.com 今回はgithub actionで動かすのをやってみました。 本題 最小の構成はこんな感じ? name: Test on: pull_request: types: [opened] jobs: main: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: '16' - uses: microsof…

  • playwrightでE2Eテスト

    はじめに こんばんは。 最近 playwright というテストツールを使って E2Eテストを触っています。 設定はとてもかんたんだったので、備忘録として残しておきます。 playwright.dev 本番 install playwrightのインストール $ npm i -D @playwright/test ブラウザのインストール $ npx playwright install --with-deps ← chrome, safari, firefox $ npx playwright install msedge ← microsoft edge テストコード import { te…

  • BigQueryの分割テーブル作成

    はじめに こんばんは。 案件でBigQueryを触ることがあり、分割テーブルを作ることがあったので、備忘録として残しておきます。 cloud.google.com 本題 時間分割テーブル こんな感じのテーブルを作ります。 重要なのはテーブル名に YYYYMMDDのフォーマット で名前をつけています。 今回は 20221113 で付けています。 そして、次の日の 20221114 でテーブルを作成します。 するとUI上に下記のような選択できる箇所ができます。 そこで日付別のテーブルにアクセスできるようになります。 今回作ったテーブルは、クエリで一気にアクセスできます。 それぞれのテーブルに1件だ…

  • LaravelでMailファサードでMailableを使わずにメール送信

    はじめに こんばんは。 またまたLaravelの知らなかったんかい!ネタです。 Mailファサードでメールを送る際にMailableを使わずに送る場合の対応です。 本題 普通にやる場合は以下。 Mail::to($user->email)->send(new TestMail($subject, $user)); Mailableを使わずに送信する場合は以下。 Mail::raw($body, static fn (Message $message) => $message->to($user->email)->subject($subject)); 知らなかったです... 終わりに Lara…

  • LaravelのSeederでダンプしたSQLファイルを読み込みたい

    はじめに こんばんは。 今回もLaravelでかんたんな備忘録です。 ある案件で、LaravelのSeederでダンプしたSQLファイルを読み込ませたい状況が出てきました。 今まで Factory/Seederを作ってテストデータを作ってたのですが、SQLファイルを読み込ませるのはやったことなかったので、調べてみました。 本題 やり方はかんたんで以下のような感じで作ります。 Seederファイル <?php namespace Database\Seeders; use Illuminate\Database\Seeder; class DumpDataSeeder extends Seede…

  • base64した値をファイルに書き込む際にlinux sed unterminated `s' commandのエラーが出た対応

    はじめに こんばんは。 めっちゃかんたんな備忘録です。 とあるjsonファイルをbase64にして、その結果をとあるファイルに向けて置換したいというシェルスクリプトを書いてたのですが、どうも linux sed unterminated s' command が取れず悩んでたのですが、しょうもない結果だったので、過去の自分を戒めるために残しておきます。 本題 HASH_DATA=$(base64 ./key.json) sed -i -e "e/KEH_HASH='';/KEY_HASH='${HASH_DATA}';/g" ./params.config これを実行すると linux sed…

  • m1 macにphpenvでphp8.1をインストール

    はじめに こんばんは。 毎度おなじみphpインストール記事です。 今回M1 Macに買い替えたのでphpをインストールし直すタイミングありましたので、再度ブログ書いておこうと思います。 前回の記事 kojirooooocks.hatenablog.com kojirooooocks.hatenablog.com 本題 1. homebrewのインストール $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" $ echo 'eval "$(/opt/ho…

  • husky - .git can't be found の解決法

    はじめに こんばんは。 最近 husky を使ってみているのですが、 husky - .git can't be found (see https://typicode.github.io/husky/#/?id=custom-directory) というエラーが出てしまったので、そちらの解決方を備忘録として残しておきます。 huskyのバージョンは v8.0.1 です。 github.com 本題 答えはエラー分で表示されているドキュメントURLに記載されているのですが、 .gitフォルダとpackage.jsonが同一ディレクトリにないとだめのようです。 対応方法も上記ドキュメントに記載さ…

  • vue3でのcomputedのgetter, setter

    はじめに こんばんは。 かんたんな備忘録ですが、vue3では初めて書いたので残しておきます。 本題 propsのデータを 子コンポーネントに存在するフォームのmodelで使用したい そして、変更の結果を emitしたいみたいなパターンで使ってます。 vue2 ではこんな感じで使ってました。 vue2 props: { item: { type: String, required: true } }, computed: { computedItem: { get() { return this.item }, set(value) { this.$emit('changeItem', valu…

  • piniaのデータを永続化したい

    はじめに こんばんは。 最近関わっているプロジェクトでフロントエンドの状態管理に pinia を使っています。 このpiniaで管理しているデータをLocalStorageなりに入れて永続化してみました。 本題 以前状態管理に vuexを使っていて同じく 永続化したい要望があって、以下のライブラリを使ってました。 (もうメンテされないのですね...) github.com piniaでも似たようなものないかなと探していたら見つけました。 何個かあるみたいですね。 github.com github.com 設定は大体同じで piniaのスクリプトファイルに persist: true などを追…

  • dockerで立ち上げたamazon linuxイメージで Failed to get D-Bus connection: No such file or directoryというエラーが出る

    はじめに こんばんは。 結構ハマってしまったので、備忘録残しておきます。 調べたら結構出てきてハマっている方も多い感じでした。 mac => monterey 12.6 docker for mac => 4.12.0 (85629) 本題 最近 docker for macを最新に updateして docker-composeを使用して 各イメージを 起動したところ、起動はできたけど立ち上がっているコンテナの webサーバにアクセスできないという現象が起きました。 ビルドし直したりポート変更したりdocker再起動したり、いろいろやっても変わらず。 該当コンテナには入れるのでコンテナ内はい…

  • laravelのエラーClass "Doctrine\DBAL\Driver\AbstractMySQLDriver" not foundがでた

    はじめに こんばんは。 laravelのマイグレーションでカラム変更しようとした際にエラーが出たので、備忘録しておきます。 本題 1 今回試した際に発生したエラーは以下です。 Class "Doctrine\DBAL\Driver\AbstractMySQLDriver" not found こちらを解決するには、以下のパッケージが必要です。 github.com 下記コマンドでインストールすれば問題なくマイグレーションを実行できます。 $ composer require doctrine/dbal 2 別のマイグレーション実行時に出たエラーでありました。 TINYINTの方を変更しようとし…

  • 7〜8月のダイエット結果

    はじめに こんばんは。 7〜8月のダイエット結果です。 前回はこちら kojirooooocks.hatenablog.com 本題 7月、8月は暑いのもあり、疲れたためダイエットが億劫になってきた時期でした。 運動はいつものとおり下記 有酸素運動は FitBoxing Fit Boxing 2 -リズム&エクササイズ- -SwitchイマジニアAmazon Fit Boxing/Fit Boxing 2に対応 コントローラー グリップ switchに対応 ジョイコン用 コントローラー ハンドル 大人と子供向け joyco用 ボクシングゲーム用グリップ 2個 セット(黒&黒)HJstarsAm…

  • github action でキャッシュを使う

    はじめに こんばんは。 先週から目眩と頭痛が続いていて体調が悪く死んでおりました。 今回は github action のキャッシュをつかってみたので備忘録として残しておきます。 docs.github.com 本題 本体はこちら name: Test on: push: branches: - main jobs: test: runs-on: ubuntu-latest steps: - uses: shivammathur/setup-php@v2 with: php-version: '8.1' - uses: actions/checkout@v3 - name: Setup ENV…

  • laravelのページネーションリンクにパラメータを渡す

    はじめに こんばんは。 またまた恥ずかしい話です。 久々に bladeファイル触っていて完全にやり方忘れていたので、備忘録で残しておきます。 本題 めちゃめちゃかんたんですがよくあるページネーションリンクに検索クエリを渡す方法です。 方法は以下。 {{ $users->onEachSide(5)->appends(Request::all())->links() }} appends() が本体です。 github.com 内部でaddQuery()を実行してくれている感じです。 その後 links()を呼んでるのでページネーションリンクが生成されます。 このlinkで検索クエリがついてくれま…

  • リレーション先のレコード件数を取得する

    はじめに こんばんは。 今回も恥ずかしくも知らなかった件です。 本題 今までリレーション先のレコード数を確認するのって with() とかで指定してとってきたコレクションをcountしていました。 ただ、laravelでは withCount() ってのを提供していました。 readouble.com <?php $team = Team::query()->withCount(['users'])->where('id', $teamId)->firstOrFail(); dd($team->users_count); ← n件 便利なもんですね。。。 また、公式にものってたのですが、 wi…

  • 自分でできる子に育つほめ方叱り方を読んだ

    はじめに こんばんは。 今回はこの本を読みました。 最近子育てに妻と自分ともに悩んでいたので、なにかこの状況を打破できるものはないかなと持ってアマゾンでポチりました。 モンテッソーリ教育・レッジョ・エミリア教育を知り尽くした オックスフォード児童発達学博士が語る 自分でできる子に育つ ほめ方 叱り方 3歳 〜 12歳 の子ども対象作者:島村 華子ディスカヴァー・トゥエンティワンAmazon 中田のあっちゃんも動画で紹介してました。 www.youtube.com www.youtube.com 本題 正直動画見れば大体概要わかっちゃうんですが、自分的に特に刺さった3つのことを残しておきます。 …

  • laravelでツリー構造のmodelのリレーション

    はじめに。 こんばんは。 かんたんですが、ツリー構造を持っているmodelのリレーションを扱うものがあったので、備忘録として残しておきます。 本題 以下のようなテーブルがあるとします。 CREATE TABLE `categories` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `parent_id` int DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_u…

  • gitignore_globalの存在知らなかった

    はじめに こんばんは。また自分の無知をさらけ出すタイプで行きます。 .gitignore_global 知らなかったです。 今まで .DS_Store .idea とかを毎回プロジェクトの .gitignore に追加してました。 ただ最近、個人の設定で追加されるような .idea みたいなのをプロジェクトの .gitignore に追加しないでください。 と言われて、調べると globalで追加される .gitignore_global の存在を知りました... ドキュメントにもきちんとありましたので、ただの無知でした。 https://docs.github.com/en/get-star…

  • Laravel Sanctumのアビリティ試した

    はじめに こんばんは。 前回の続きです。 kojirooooocks.hatenablog.com 短いですがアビリティ試してみました。 本題 前回作ったルートを以下のように修正・追加してみました。 <?php use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\Valida…

  • Laravel Sanctumを素振り

    はじめに こんばんは。 今回はLaravel Sanctumを試してみました。 基本的に公式のサイトの通りに進めてみます。 github.com readouble.com 本番 事前準備 $ composer create-project --prefer-dist laravel/laravel laravel-sanctum-example $ cd laravel-sanctum-example $ php artisan --version Laravel Framework 8.83.18 $ php artisan vendor:publish --provider="Larav…

  • laravelのマイグレーションsquash試す。

    はじめに こんばんは。 今回はlaravelのマイグレーションsquashを試してみました。 readouble.com マイグレーションの圧縮 アプリケーションを構築していくにつれ、時間の経過とともに段々と多くのマイグレーションが蓄積されていく可能性があります。これにより、database/migrationsディレクトリが数百のマイグレーションで肥大化する可能性があります。必要に応じて、マイグレーションを単一のSQLファイルに「圧縮」できます。利用するには、schema:dumpコマンドを実行します。 本題 とりあえず現在の状況はこんな感じです。 # php artisan migrate…

  • 6月のダイエット成果発表

    はじめに こんにちは。 ダイエット頑張っております。 6月のダイエット成果発表します。 前回のダイエット記事は以下 kojirooooocks.hatenablog.com 本題 前回のダイエットから確実に違うことが1点。 いわゆる停滞期に入りました。 運動しても今まで通り体重が減らないという状態です。 有効な解決策はチートデイを設けるって感じみたいです。 ただ、自分はこういったものを設けると確実に甘えが出ちゃうとおもったので、設けませんでした。 自分のやりかたは 筋トレで基礎代謝を増やす です。 運動 とりあえず運動は前回と同様で 有酸素運動は FitBoxing Fit Boxing 2 …

  • php8.1のenumを使ってみる

    はじめに こんばんは。 前回のphp8.1をインストールしてみたのですが、今回はphp8.1の目玉っぽい 列挙型を試してみます。 前回の記事は以下 kojirooooocks.hatenablog.com www.php.net 本題 試したバージョンはこちら $php -v PHP 8.1.6 (cli) (built: Jun 10 2022 23:47:15) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.6, Copyright (c) Zend Technologies with Zend OPcache v8.1.6, Cop…

  • phpenvでphp8.1をインストール

    はじめまして php8.1の案件が来るみたいでローカルに php8.1をインストールしてみました。 例のごとく phpenv です。 本題 とりあえず普通に実行してみます。 $ phpenv install 8.1.6 ... ... ... curl: (56) LibreSSL SSL_read: Connection reset by peer, errno 54 あんまり見ないエラーがでました。 調べてみるとキャッシュ不足とのことでした。 reject.tokyo 今回は参考サイトの対策1で対応してみました。 $ git config http.postBuffer 512M これで再…

  • ダイエットの成果が出てきた

    こんばんは。 めちゃめちゃプライベートのブログですが、5月1ヶ月間のダイエットがやっと出てきました。 どうもここ最近勉強や仕事にあまり身が入らない。やる気が起きないという現象がおきてまして、 「運動不足が原因かも...」 と思って、毎回挫折していたダイエットを先月1ヶ月間ガチのダイエットを行いました。 運動 メインとなる運動はこのゲーム このゲームで有酸素運動をして無駄な贅肉を落とす方針です。 Fit Boxing 2 -リズム&エクササイズ- -SwitchイマジニアAmazon Fit Boxing/Fit Boxing 2に対応 コントローラー グリップ switchに対応 ジョイコン用…

  • MySQLのFIND_IN_SET知らなかった

    はじめに こんばんは。 今回も知らなかったシリーズです。 恥をかきにいくスタイルでブログ化します。 今回はMySQLのFIND_IN_SETです。 dev.mysql.com 本題 1,2,3,4,5 のようなカンマ区切りで登録されているカラムに対して、カンマごとの値に対して検索が行なえます。 例 id type 1 aaa,bbb,ccc,ddd,eee 2 ccc,bbb 3 ddd 4 eee 上記のようなデータがあったときに、 ddd をもっているデータを抽出したいってなったときに役立ちます。 SELECT * FROM test_table WHERE FIND_IN_SET('dd…

  • laravelのクエリログ確認方法知らなかった

    はじめに こんばんは。 laravelのクエリログ確認方法恥ずかしながら Illuminate\Database\Query\Builder\toSQL() しか知らなかったんですが、他の方法をここ最近知りました....w 自分の無知を噛みしめるために備忘録にしておきます。 本題 Illuminate\Support\Facades\DB::enableQueryLog(); と Illuminate\Support\Facades\DB::getQueryLog() を使うだけです。 public function find() { Illuminate\Support\Facades\DB…

arrow_drop_down

ブログリーダー」を活用して、kojirockさんをフォローしませんか?

ハンドル名
kojirockさん
ブログタイトル
もがき系プログラマの日常
フォロー
もがき系プログラマの日常

にほんブログ村 カテゴリー一覧

商用