Laravel

Laravel: forPage() で page によって返値が配列になったりオブジェクトになったり

環境: Laravel@9.52.4 事象: Laravel でforPage() を使ってPagination を実装したがページによってオブジェクトが返ってくる。 ↓↓正常な挙動(配列が返る) ↓↓異常な挙動(オブジェクトが返る) ↑↑(indexがfilter()により抜けがある) solution) 同じロジックでp…

Laravel: migration file を削除してしまい php artisan migrate:reset でエラー

環境: Laravel@9.52.4 migrate 済みの migration ファイルを削除してしまい、php artisan migrate:reset で Migration not found とエラーが出てしまった場合。 solution) php artisan migrate:fresh >>> DB全てのテーブルが削除された後、migrate する処理 …

php artisan db:seed >>> Target class [hoge] does not exists

seeder の namespace が間違っていた seeder を編集しても適用されない場合があるので編集したら composer dump-autoload

Laravel: Cannot trigger ORM model event static::restored

環境: laravel@8.83.23 事象: Model を soft-delete し、その後 restore 時に特定の処理をしたいが処理が実行されない。 cannot works: @models/User.php protected static fucntion boot() { parent::boot(); static::deleted(function ($user) { $user->pr…

Laravel + MongoDB: error: Indirect modification of overloaded property App\....

環境: laravel@8.83.23 jensseger/laravel-mongodb@3.8.0 Model Structure Profile: { roles: [’admin’] } $profile = App\Profile::find(1); $profile->roles = array_push($profile->roles, 'superAdmin') >>> error: Indirect modification of overloade…

Laravel Cashier chips

環境: laravel@8.79.0 laravel/cashier@13.8.6 payment method 一覧の取得 $user->paymentMethods() 任意の paymentMethod の詳細を取得 $user->paymentMethods()[0]->asStripePaymentMethod() default paymentMethod の取得(設定していれば) $user->default…

Laravel + mongoDB find deepley nested collection with array

環境: laravel@8.79.0 Jenssegers/mongodb@3.8.4 サーチ対象の model 構造は以下とする Order { _id: ********, shippingStatus: [ "status" => "発送完了", "shippingMethod" => "クロネコヤマト", "inquiryNumber" => "11111111" ] } Order model から shi…

Laravel: 親モデルを削除と同時に子モデルを削除する cascading soft-delete / MySQL case and MongoDB case

環境: Laravel@8.79.0 Jenssegers/mongodb@3.8.4 前提: 親モデル >>> User.php MySQL子モデル >>> Post.php MongoDB子モデル >>> ProfileDetail.php case MySQL soft-delete に対応させる migration file に以下を加筆 Schema::create('users', function B…

Laravel MongoDB: Delete a table and items manually

環境 Laravel@8.79.0 Jenssegers/mongodb@3.8.4 php artisan tinker >>> @tinker session // Delete a table Schema::connection('mongodb')->drop('TABLE_NAME') // Delete items DB::connection('mongodb')->table('TABLE_NAME')->truncate() ref: stackov…

Laravel と Vuejs の連携 laravel 側の データを vuejs template 内で使用する

Updated: 2024_02_16 環境: laravel@8.79.0 vue@2.6.14 @app.blade.php <div id="vue"> <app-pageBody :passing-data="`{{ Sesssion::get('passingData'); }}`"></app-pageBody> 必ずバッククォート``で囲う </div> @someController.php session()->put('passingData', "Hello this is a passing data"); @PageBody.vue props: ['passingD…

Laravel と VueJs の連携

環境: Laravel@8.42.1 vue@2.6.12 vue-router@3.5.1 App Structure /welcome welcome component内でregister/login リクエスト 結果が成功なら ’’ にリダイレクトするが、laravel blade template を切り替える必要があるのならば vue-router の $router.go,…

solved) Laravelでphp artisan db:seed をしたらエラー Unable to locate factory for MODEL_NAME

環境: Laravel@8.42.1 laravelを7.xから8.xにアップグレードしたタイミングで php artisan db:seed をしたら Unable to locate factory for MODEL_NAME とエラー solution) 各モデルのnamespaceを正しく修正 それにともない、各seeder, factoryファイルも修…

Laravel error: laravelのバージョンを7.xから8.xにアップグレードしたらmodelのclassが見つからなくなった

環境:laravel@8.42.1 laravelを7.xから8.xにアップグレードしたタイミングで下記のエラー modelのクラスがうまく取得できなくなった composer dump-autoload でエラーが確認できる solution) namespaceを修正 laravel プロジェクトのappディレクトリ直下に…

Upgrade Laravel from 7.x to 8.x / Upgrade PHP7.2 to PHP8.0 / Upgrade jenssegers/laravel-mongodb on AWS Cloud9

PHPをUpgrade sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install libapache2-mod-php8.0 sudo a2dismod php7.2 sudo a2enmod php8.0 sudo apt-get install php8.0-dom php8.0-mbstring php8.0-zip php8.0-mysql php8.0-comm…

Laravel Best Practice

良ページ www.laravelbestpractices.com LaravelとNuxtではじめるSNSシェアアプリ開発 (技術の泉シリーズ(NextPublishing)) 作者:寺田 晃大,峯岸 海 発売日: 2020/05/01 メディア: Kindle版

Laravel 6.x から 7.x へアップグレード with jenssegers / laravel-mongodb

環境: php@7.2 laravel@6.18.35 mongodb@4.0.1 ext-mongodb@1.6 jenssegers / laravel-mongodb が laravel7.x に対応するようになったのでそれへの対応について。 composer.json のlaravel の dependency だけ書き換えて composer update するとエラー が出…

Laravel : Canvas Data を Laravel Storage にアップロードする

環境: Laravel@6.18.35 HTMLCanvasElement.toDataURL()でフロントから送られたデータのサーバー側の処理に関して。 //ヘッダに「data:image/png;base64,」が付いているので、それは外す if (preg_match('/data:image\/(gif|jpeg|png);base64,(.*)/i', $prod…

Laravel error: file_put_contents() failed to open stream: Permission denied

updated: 2021/10/4 環境: Laravel@8.62.0 ubuntu@20.0.4 事象: ファイルアップロードコードを書いている途中、laravel/storage のパーミッションを sudo chown -R ubuntu:web-content storage にしたあたり? solution: ディレクトリのパーミッションを変…

Laravel Cashier: StripeのダッシュボードからデフォルトのpaymentMethodを設定すると返値が変わる

環境: laravel@6.18.35 laravel-cashier@12.3.1 LaravelからデフォルトのpaymentMethodを設定した場合 Stripeのダッシュボードからデフォルトを別のpaymentMethodに設定すると… PaymentMethod object ではなく、 Card object を返すようになってしまうので…

Laravel Cashier: paymentMethods()が空のobjectしか返さない

環境: laravel@6.18.35 laravel-cashier@12.3.1 $paymentMethods = Auth::user()->paymentMethods() solution) dd($paymentMethods[0])で返る以下の項目がアクセス可能なプロパティなので $paymentMethods[0]->card等 もしくは、 $paymentMethods[0]->asStr…

Laravel: .env ファイルをうまく読み込めなくなったら

env('APP_NAME') >>> null うまくenv関数が使用できない。この場合は php artisan config:clear

Laravel: model を任意のディレクトリに移動させたい場合

laravel@6.3 model を任意のディレクトリに移動させたい場合 php artisan make:model MODEL_NAME 任意のディレクトリに移動 php artisan make:migration CreateModel_nameTable php artisan migrate **必ず migrate する前にディレクトリを移動させる。 **…

adminMongoを導入

Updated 2023_06_05 既存のAWS cloud9 上の Laravel + MongoDB App に adminMongo を導入 https://github.com/mrvautin/adminMongo プロジェクトのルートディレクトリで npm install admin-mongo adminMongo 用のサーバーを準備 /node_modules/admin-mongo …

Solved: Laravel で storageにファイルをアップロードしようとしたらLaravel Impossible to Create Root Directory

Laravel@6.4.0 ubuntu@18.04.2 $request->image->store('test'); を実行したらLaravel Impossible to Create Root Directory とエラーメッセージが出た。 >>> storage_path(config/filesystem.phpで確認)の権限の設定に不備。 対象フォルダにwrite権限を…

Solved: Voyagerをインストールしたらあらかじめ設定していたUserのdefault avatarがうまく取得できなくなった。

voyager@1.3 サーバーからのレスポンスでUserのavatarがnullの場合、javascript側でdefaultのavatarを設定していたがvoyagerをインストールしてからDB上でUserのavatarがnullでもusers/default.pngという値が勝手にサーバーからのレスポンスに付与されるよう…

Solved: Laravel: Voyager をインストールしたらphp artisan migrate:refreshが出来なくなった

updated: 2019/12/23 laravel@6.4.0 voyager@1.3 すでに作成済みのLaravel Appにvoyagerをインストールしたところphp artisan migrateをすると SQLSTATE[42S02]: Base table or view not found: 1146 Table 'databasename' doesn't exist とエラーメッセージ…

symlink(): No such file or directory laravel ubuntu - solved AWS Cloud9

Updated: 2020/9/25 laravel@6.4.0 AWS Cloud9 Ubuntu 18.04.2 LTS projectのrootディレクトリでなく、/root/PROJECT_NAME/にLaravelをインストール AWS Cloud9 上に作成したLaravelで php artisan voyager:install >>> error: symlink(): No such file or d…

Laravel Database 操作 PHP Notice: Indirect modification of overloaed property ...

Laravel@5.8.33 mongoDB@4.0.10 あるEloquent ORMのネストされたデータdetails['description']をアップデートしたい。 $target = App\ModelName::first() $target->details['description'] >>> "test" と返るので直接 $target->details['description'] = "up…

Laravel formData validation

formData に image を入れてデータを送る場合 @FrontEnd const formData = new FormData() formData.append("image", BLOB_IMAGE_DATA) axios({ method: 'post', url: 'SERVER_URL', data: formData, config: { headers: {'Content-Type': 'multipart/form-d…

Laravel 5.6 + VueJS add jquery globally

jquery を vue component のどこからでも使えるようにする 参考: stackoverflow.com //