Laravel

CartController.php

public function success(){ $carts = Cart::where('user_id', auth()->user()->id)->get(); $user = auth()->user(); $firstAddress = $user->addresses()->first(); if (!$firstAddress) { // 住所が登録されていない場合の処理 } $order = Order::create(…

リンクは正しいのに画像が表示されない

キャッシュのクリア php artisan config:cachephp artisan route:cachephp artisan view:clear シンボリックリンクの再生成 rm public/storagephp artisan storage:link

StripeのCheckout機能を利用する

【大まかな手順】 バックエンドでセッションを作る。↓フロントエンド側に渡す。↓Stripeチェックアウト 【実際の手順】◯Stripe側 設定⇒CheckoutとPayment Links↓商品の管理↓商品の追加 ◯Laravel側ライブラリの登録composer require stripe/stripe-php ◯Stripe…

ドロップダウンが表示されない

どのタイミングからかは分からないが右上のユーザー名(ブラウザを狭めた時のハンバーガーメニュー)を押してもドロップダウンが表示されなくなり、ログアウトができなくなった。 心当たりは全くないがSwiper.jsを導入したあたりからそうなった。 チャットGP…

CSSが適用されない!

Laravel Mixのビルドプロセスの実行 npm run dev npm run prod Laravelのストレージリンクを確認 php artisan storage:link webpack.mix.js ファイルを確認 npm install tailwindcss autoprefixer --save-dev ↓const mix = require('laravel-mix');require('…

package.jsonファイルの "devDependencies"にpostcss-importがない

npm install postcss-import --save-dev npm audit fix

Error: error:0308010C:digital envelope routines::unsupported

このエラーは、Node.jsのバージョンが17以上である場合に、Node.jsがデフォルトでOpenSSL 3を使用し、一部の暗号化アルゴリズムが非推奨またはサポートされなくなったことに関連しておこるエラーです。 【解決方法】 ①PowerShellでの正しい環境変数の設定す…

ルート設定の確認方法

ルートが通っているか確認 php artisan route:list グレップとして見る場合は | grep images とすればimage関連の情報が確認できる

GD Library extension not available with this PHP installation.

phpinfo()を確認 php.iniファイルのextension=gdがコメントアウトされていないか確認 Webサーバーを再起動 Windowsの再起動

Laravelのバージョンアップ方法

laravel8からlaravel10にアップグレードする場合 laravel10を別フォルダにインストール ↓ 生成されたcomposer.jsonとpackage.jsonをlaravel8の方にコピペ ↓ vendorフォルダとnode_modulesフォルダを削除 ↓ composer install や npm installで再インストール …

php -v composer --version node -v npm -v ↓ 【windows】 composer create-project "laravel/laravel=8.*" ◯◯ --prefer-dist or curl -s https://laravel.build/○○○-app | bash ↓ 【GitHubの設定】 GitHubのWebサイトにログイン 右上隅にある自分のプロフィ…

Laravelプロジェクトを新PCにクローンした後にすること

Laravelプロジェクトを新PCにクローンすると、vendorフォルダやnode_modulesフォルダ、.envファイルなどはクローンされない。 vendorフォルダやnode_modulesフォルダ、.envファイルを旧PCからコピー。 ↓ sail up -d ↓ 実行権限がないと怒られる(Permission …

Laravel Sail 環境でExcelファイルを扱う

1.Docker コンテナ内で Composer コマンドを実行: Laravel Sail は Docker コンテナ内で動作しています。そのため、コンテナ内で composer require コマンドを実行して、maatwebsite/excel パッケージをインストールする必要があります。以下のコマンドを…

view()とredirect()の違い

return view() 同じページがその場で再表示されますが、フォームの再送信の問題が発生する可能性があります。 return redirect() 同じページが新しいHTTPリクエストにより再表示されます。これにより、フォームの再送信の問題を防ぐことができます。

キャッシュのクリア

php artisan config:clearphp artisan cache:clearphp artisan route:clearphp artisan view:clear

デプロイ方法

①ドメインの取得 →ドメイン取得をクリック ②ドメインの設定 →ドメイン設定をクリック→ドメイン名を入力→無料独自SSLを利用する(推奨)にチェック※SSL=サーバー、ブラウザ間の暗号化 ③サブドメイン設定 →サブドメイン設定をクリック→サブドメイン名を入力→…

register.blade.phpをadminユーザーのみアクセルできるようにする

①AuthServiceProviderでGateの設定 Gate::define('admin', function($user) { foreach($user->roles as $role){ if($role->name=='admin') { return true; } } return false; });②ルート設定(web.php)でミドルウェエア適用Route::middleware(['auth', 'can…

mail設定

★★★.envファイルにメール送信のための設定★★★ MAIL_ADMIN=○○@○○ Laravel Sailの場合 http://localhost:8025/ ★★★CONFIGファイルの設定(configの中の mail.phpファイル)★★★ admin'=>env('MAIL_ADMIN', null), ★★★ContactContoroller.php★★★ use Illuminate\S…

return view('cart.index');とreturn redirect()->route('cart.index');の違い

return view('cart.index'); の場合: 直接ビューへのアクセス: このコマンドはサーバーに対して、直接 cart.index ビューをクライアント(ユーザーのブラウザ)に表示するよう指示します。 データの渡し方: コントローラーからビューへ直接データを渡すこと…

カート作成

ビュー(/show.blade.php) use App\Http\Controllers\CartController; $quantity = Stock::where('post_id', $post->id) ->sum('quantity'); if($quantity > 9){ $quantity = 9; } <form method="post" action="{{ route('cart.add')}}"> @csrf <div class="flex items-center"> <select name="quantity class=""> </select></div></form>

送料180円を加える

public function start() { $stripe = new \Stripe\StripeClient(config('services.stripe.st_key')); $url = 'http://127.0.0.1:8000'; $id = auth()->user()->id; $session = $stripe->checkout->sessions->create([ 'payment_method_types' => ['card'], …

プルダウンメニューで選択された数量の値をStripeへ渡す

var stripe = Stripe("{{config('services.stripe.pb_key')}}");var checkoutButton = document.getElementById('checkout-button');var displayError = document.getElementById('error-message');var quantitySelect = document.getElementById('quantity'…

選択可能な数量を制限する方法

各商品にはstockのような属性があると仮定します。このstock属性は商品の在庫数を表します。商品の詳細ページに遷移したとき、stock属性を使用して、選択できる数量を制限します。在庫が0の場合、カートに入れるボタンを無効化し、「現在在庫が切れています…

Webhookのペイロードから情報を取得する方法

public function handleWebhook(Request $request) { $payload = $request->all(); $amount = $payload['data']['object']['amount']; // 「誰が」購入したかの情報を取得 $user_name = $payload['data']['object']['user_name']; // 「どの商品」を購入した…

Stripeを使用して、特定の数量分の商品を発注する方法

前提条件:Stripeアカウントを既に持っていること。Laravelプロジェクトが既にセットアップされていること。手順:1. Stripe PHP SDKのインストール Laravelプロジェクトのルートディレクトリで以下のコマンドを実行して、Stripe PHP SDKをインストールします…

バリデーションチェック

① public function store(Request $request){ // バリデーションのルールを設定 $request->validate([ 'pickup_time.*' => 'required|date_format:H:i', 'pickup_location.*' => 'required|string', 'dropoff_time.*' => 'required|date_format:H:i', 'dropo…

多対多リレーション

artisan make:migration create_roles_users_table --create=role_user 中間テーブルは、2つのモデルのモデル名をアルファベット順に並べるというルールがある。 【User.php】 public function roles() { return $this->belongsToMany(Role::class); } 【Ro…

主なsail artisan

sail artisan make:migration add_column_user_id_to_posts_table --table=posts sail artisan make:model Post -m sail artisan make:controller PostController --resource --model=Post

編集するファイルの在りか

ログイン後の画面app/Providers/RouteServiceProvide.php メニューの追加resources/views/layoutsの中のnavigation.blade.php ログインと登録ページへのリンクを追加resources/views/layouts/guest.blade.php ログイン画面・登録画面のロゴresources/views/c…

投稿の削除

【view】 <x-primary-button class="bg-red-700 float-right ml-4" onClick="return confirm('本当に削除しますか?');">削除</x-primary-button> 【Controller】 public function destroy(Post $post) { $post->delete(); return redirect()->route('post.index')->with('message', '投稿を削除しました'); }