- 1. Vueでお絵かきアプリ作成4(canvas使用)
- 2. phpstanを用いた際のエラー解消
- 3. php artisan optimize コマンドの罠
- 4. php artisan migrate でSQLSTATE[HY000] [2002]のエラーが出る
- 5. 【Laravel 8 / Sail / Fortify / Sanctum】タスク管理アプリ (ポートフォリオ) の実装過程 (バックエンド編)
- 6. PHP MAMPエラー解除方法
- 7. Laravel8 CRUD+検索機能のテストコード実装
- 8. Laravel attribute original の違い
- 9. 【Laravel】フォームのバリデーションエラー時に入力された値を保持する
- 10. Excelデータをweb上でも管理するアプリ作成[laravel]
- 11. Laravel8 ソートとページネーションを組み合わせる
- 12. 自作wordpressのテーマにwelcartのプラグインを編集利用する際に使う関数
- 13. SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: NO)を解決
- 14. Webサービスの認証についてまとめる
- 15. XAMPPでMysqlのポート番号を変更後にphpMyAdminに接続するとエラーになる
- 16. XAMPPでMySQLを起動しようとStartをクリックした際にエラーが出力された時の対処法
- 17. [php] 簡易版 位置情報APIの実装
- 18. 簡易的なclearlinuxベースのlumen環境
- 19. LaravelでJSのAjaxを使って非同期通信を行う
- 20. LaravelでOneSignalを使って特定ユーザーに通知する方法
Vueでお絵かきアプリ作成4(canvas使用)
#趣向
vueでお絵かき機能を作成する機会があったため作ってみました!
![スクリーンショット 2021-08-15 17.37.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/843952/9ffc5175-6583-9e15-6d03-252324b66008.png)#3の続き
[前回の3はこちら](https://qiita.com/ryotaro_tech/items/3726db3213d4932c76c1)
このページでは「「リセット」と「画像ダウンロード」とデータを「更新」、「取得」できるようにしたいと思います。まずはいつもどおりhtml。画面に「リセット」、「画像ダウンロード」、「更新」ボタンを追加します。
また、更新したら更新した画像が次回から背景になる感じですね。“`HAML:html
phpstanを用いた際のエラー解消
##~ no value type specified in iterable type array のエラー
以下のエラーに対する改善方法
自分的な解釈では”配列の中身の値に対しても型指定してください”みたいなイメージ“`
5 Function saleByTime() return type has no value type specified in iterable type array.
? See: https://phpstan.org/blog/solving-phpstan-no-value-type-specified-in-iterable-type
“`解消後のコードは以下の通り
“`php
// 以下の*部分3行の記述で返り値である$priceの連想配列の中身のキー、値に対する型を指定することで上記のエラーは解消される
/**
* @return array$unitSo php artisan optimize コマンドの罠
###php artisan optimize とphp artisan optimize:clearの違いについて
自分自身optimizeコマンドに関して大きく勘違いしており、上記のコマンド(optimize,optimize:clear)は同じであると思っていた。
実際にコマンドを打ってみると分かるが、出てくる内容は全く異なるものである。“`
# php artisan optimize:clear
Cached events cleared!
Compiled views cleared!
Application cache cleared!
Route cache cleared!
Configuration cache cleared!
Compiled services and packages files removed!
Caches cleared successfully!
“`
“`
# php artisan optimize
Configuration cache cleared!
Configuration cached successfulphp artisan migrate でSQLSTATE[HY000] [2002]のエラーが出る
# はじめに
一度、コンテナなどをdownした後にもう一度upして`migrate`しようとすると、エラーになったので解決した方法をメモします。
いち解決方法なのでご参考になれば幸いです。# 条件
“`bash
mac OS “11.2.3 Big Sur”
Laravel Framework “6.20.27”
PHP “8.0.7”
nginx “1.18”
mysql “8.0”
“`# php artisan migrate ができなくなった
“`terminal
❶ docker-compose down
Stopping web_1 … done
Stopping app_1 … done
Stopping db_1 … done
Removing web_1 … done
Removing app_1 … done
Removing db_1 … done
Removing network lantern_default❷ docker-compose up -d
Creating app_1 … done
Creati【Laravel 8 / Sail / Fortify / Sanctum】タスク管理アプリ (ポートフォリオ) の実装過程 (バックエンド編)
主にスキル向上を目的に、ポートフォリオとしてタスク管理アプリを作成しました。このページでは、主にそのバックエンド部分の実装過程について触れていきます。
アプリケーションや作成したコード、フロントエンドの実装過程の説明については、以下のリンクからアクセスできます。
– アプリケーション: [https://www.miwataru.com/](https://www.miwataru.com/)
– GitHub: [https://github.com/zuka-e/laravel-react-task-spa](https://github.com/zuka-e/laravel-react-task-spa)
– 全体像: [https://qiita.com/zuka-e/items/9a985f0dd5db21bc48d7](https://qiita.com/zuka-e/items/9a985f0dd5db21bc48d7)
– フロントエンド実装過程: [https://qiita.com/zuka-e/items/60afcc09464e1016233PHP MAMPエラー解除方法
:::note info
MAMPを開きたい。
:::
![スクリーンショット 2021-08-25 16.16.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1861207/518efa0b-ccc0-8521-7eca-a31894f9d2fd.png)1 . ホームディレクトリから以下コマンドを実行。
“`ruby:コマンド
sudo lsof -i -P | grep “LISTEN”
“`
2 . パスワードを求められるので入力。
( PCのロック解除するパスワード )3 . ポートの状態が一覧で表示されるので、ここで8888が使われているものを以下のコマンドで削除。
“`ruby:コマンド
kill -9 番号
“`4 . 全て消し終えたところで再びMAMP起動。
Laravel8 CRUD+検索機能のテストコード実装
##初めに
こちらの記事では、僕がPF作成で実装したCRUD+検索機能のテストコードについてご紹介します。
正直テストコードはかなり苦戦し、現役エンジニアの方に質問させてもらいながらやっとの思いで実装しました。。
公式ドキュメントや紹介されている記事でやり方がなんとなく分かったとしても、自分の実装したロジックに対してどのようなテストを書くかは自分で考えなくてはいけません。
現役エンジニアの方に言われたのですが、この辺りはテストを書く経験を積むことで養われるので、最初のうちはかなり時間がかかるようです。
人によってロジックが違う分テストの内容も変わってくるので、この記事が少しでも自身のテストを書く際に参考になってもらえると幸いです!##HTTPリクエスト
###ステータスコード
今回のメインはデータベースのテストになりますが、簡単にHTTPリクエストのテストもご紹介しておきます。
テスト内容:`設定したルートにアクセスした際に想定のステータスコードが返ってくるか`
ログイン者しか使用できない機能に関しては`302`が返ってくるかで、誰でもアクセスできる場合は`200`が返ってくるか確Laravel attribute original の違い
#dd()するとよく出てくるこの二つの違いについて調べてみました。
![スクリーンショット 2021-08-25 0.55.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1670485/0333391c-6e38-879b-4092-0303bbfe8a4a.png)
#それぞれの違い
##original
originalは名前の通りオリジナルのデータになります。
コレクション型でデータを引っ張ってきてdd()するとoriginalにデータが入ります。“`php:MainController.php
$boxes = Box::orderBy(‘created_at’, ‘asc’)->get();
dd($boxes);
“`##attribute
こちらは加工したデータが入ります。
下記のようにmap()関数でdistanceというカラムを増やしてあげると参考
Laravelのモデルの結果セットに「任意のカラム」を追加する
https://pgmemo.tokyo【Laravel】フォームのバリデーションエラー時に入力された値を保持する
# バリデーションエラー時に入力された値を保持する
グローバルに定義されており、どこからでも呼び出せる`old`ヘルパをinput要素のvalueに設定します。
バリデーションを行っていないときは何も表示されず、エラーが発生したときのみ値を表示することができます。
参考:
>old関数はセッションにフラッシュデーターとして保存されている直前の入力値を取得します。
https://readouble.com/laravel/6.x/ja/helpers.html#method-old
“`php:hoge.blade.php
// テキストの内容を保持(type=”date”なども同様)
// チェックされたチェックボックスを保持
Excelデータをweb上でも管理するアプリ作成[laravel]
題名の通り
Excelにあるデータをweb上でも管理するアプリを作成しました。こちらにあるExcelファイルのデータをWeb上で管理します
[Excelファイル](https://qiita.com/freelanceradiation/items/7ebaea73b3334fddfd7d)
※Macだと登録シートでデータの登録、一覧表示、変更、削除機能が使えないです。#要件
・Web上でも顧客管理がしたい。(バックアップも兼ねて)
・検索したい
・検索した結果をExcelに出力したい#画面
![スクリーンショット 2021-08-24 21.58.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700700/347a38c3-c027-d55c-5e4a-dfd25356d2a5.png)#機能
・ログイン
・Excelデータ取り込み & 出力
・検索#実装
今回はExcelデータ取り込み & 出力のみ書いていこうと思います。
参考:[検索機能](https://qiitaLaravel8 ソートとページネーションを組み合わせる
## 前提
下記記事に沿って、投稿記事の並べ替え機能を設定済みであること。https://qiita.com/apprentice123/items/ac0645f79d877a0bd33d
## 困ったこと
追加でページネーションを設定したところ、並べ替えが維持されるのは1ページ目のみで、2ページ目以降では順番が維持されない。## やりたいこと
ページネーションを設定し、1ページ目で並べ替えた通りに2ページ目以降も表示させる。## コントローラーの変更
すでに`kyslik/column-sortable`をインストールして`sortable`メソッドを使用している。その上でページネーションと組み合わせる場合は、`クラス名::sortable()->paginate(数字)`とする。
もともと
“`app/Http/Controllers/RecordController.php
public function index(){
$records = Record::sortable()->get(); //変更前
ret自作wordpressのテーマにwelcartのプラグインを編集利用する際に使う関数
自作wordpressのテーマにwelcartのプラグインを利用する際に使う関数メモ。
※コメントアウト内容を取得。“`.php
SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: NO)を解決
phpからデータベースを操作して、掲示板を作る練習をしているときに、エラーコード“`SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: NO)“`表示されてしまう。
私の場合は、ポート番号をデファルトから「3307」変更していたために、エラーが出てしまっていた。
そこで、“`$db = new PDO(“mysql:host=localhost;dbname=bulletinboard”, “root”, “”);“`に:3307を追加し、“`$db = new PDO(“mysql:host=localhost:3307;dbname=bulletinboard”, “root”, “”);“`すると無事に接続できた。
Webサービスの認証についてまとめる
#はじめに
APIを利用して認証機能をもつサービスを作成しようとしましたが、認証機能でつまづきました。フレームワークやライブラリを利用して実現しようとしていたのですが、そもそも認証やネットワークの根本的な知識が足りないと考え、認証についてまとめることにしました。この記事はあくまで自分の備忘録なので間違っている可能性などもあるのでご了承ください。適宜更新していきます。#認証とは
[[1]]より引用>通信している相手が本人かどうかを確認する手段
より細かく言うと更に大きく3パターンに分けられ通信相手が正当かどうかを確認する**相手認証**、改ざんされたかの検出をする**メッセージ認証**、文書の正当性の保証と本人であることの証明をする**ディジタル認証**の3種類あります。この記事内での認証は一番使われることが多いであろう**相手認証**のことを指すとします。認証、認可などは誤解を生む言葉であり、いたずらに使うものではないと思いますが、一般的にログイン機能のことを認証と認識してる人が多いのでそういう文脈で使わせていただきます。
通信している相手が本人であるかを判断する材料は通
XAMPPでMysqlのポート番号を変更後にphpMyAdminに接続するとエラーになる
1.xampp>phpMyAdminディレクトリに行き、config.inc.phpファイルを見つける。
2.config.inc.phpファイル内で、“`$cfg[‘Servers’][$i][‘Host’] = ‘127.0.0.1’;“`を探す。
3.“`$cfg[‘Servers’][$i][‘Host’] = ‘127.0.0.1:3307’;“`に変更する。
XAMPPでMySQLを起動しようとStartをクリックした際にエラーが出力された時の対処法
![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206858/5aadf6c0-df96-afdf-0758-0f9d2c2d241c.png)
PHPを使う方はみんな使っている若しくは使ったことがあるのではないでしょうか、ご存じのXAMPP。
このXAMPPで、特にMySQLを動かす際にエラーがよく出力されていたので、メモとしてここに記します。##エラー現象
XAMPPのControl Panelを起動し、MySQLの「Start」ボタンを押した際に、MySQLが正常に起動しない(Startを押すとすぐに元のStartに戻る)##エラー内容
実際にXAMPPのログに表示されたものは以下の通りでした。“`
11:18:27 [mysql] Error: MySQL shutdown unexpectedly.
11:18:27 [mysql] This may be due to a blocked port, missing dependencies,
11:18:27[php] 簡易版 位置情報APIの実装
# 注意事項 必ずお読みください
– **リソースの情報が小規模なものに限る**
リクエストを受けると全件返す仕様のため、リソース何千件、何万件あるとメモリリークを起こす可能性があります。
100〜200件程度なら問題ないかと思います。何件という確証は持てないのであくまで目安で。
– **1日のリクエストが小規模なものに限る**
こちらも上記同様、全件返す仕様であるためリクエスト数が多いと当然その分処理が重くなってしまいます。また仕組み上、モックアップの配列からリソース情報を取得しているので、値に応じて厳選してレスポンスを返す仕様ではありません。
→ 改善点 リレーショナルデータベース(MySQL、PostgreSQL等)を利用して必要なデータのみ取得
**※このコードを利用してサーバーが落ちたなど不具合があった場合でも、こちらでは一切の責任を負いません。全て自己責任でお試しください。**# アプリ利用
– **エリア限定の店舗検索アプリ**
LINE Messaging APIの位置情報を利用した店舗検索を想定してこのAPIを実装し簡易的なclearlinuxベースのlumen環境
– コンテナ環境で構築するPHPのベースイメージとして定番のphp-fpmがあるが容量の重さは否めない。
– その対応策としてalpineという軽量ベースイメージを用いることも多いが、堅牢性やパフォーマンスの心配もある。
– そこで今回は、堅牢性やパフォーマンスが高いと言われているclearlinuxをベースイメージにして、軽量FWのlaravel製のlumen環境を作成する。## 環境
– Mac OS X 10.15.6
– Docker version 20.10.8
– Docker Compose version v2.0.0-rc.1## 手順
### 必要ファイル作成
– 以下のコマンドを入力して、必要なファイルを作成する。“`bash
# 作業フォルダ作成 & 移動
mkdir work; cd $_
# docker file作成
touch Dockerfile docker-compose.yml .dockerignore
# nginxの設定ファイル作成
touch default.conf
“`– 作成後、各ファイルの中身を以下のように
LaravelでJSのAjaxを使って非同期通信を行う
#laravelでの基本的な非同期通信の仕方です。
ほぼ下記の記事の内容になりますが個人的な補足説明です。
参考記事
https://qiita.com/kakudaisuke/items/01816910b7b9ecba0486流れ的にはviewにある値をjsに投げてajax通信で定義したroute-からcontrollerに値を飛ばして処理した内容をまたjsonでjsに返してあげます。
例
まずはdata-review-idの値をjsに投げます。
“`php:index.blade.php
@if (!$box->isLikedBy(Auth::user()))
{{$box->likes_count}}<LaravelでOneSignalを使って特定ユーザーに通知する方法
プログラミング初心者です。
OneSignalを使って、特定ユーザーに通知する機能を実装しました。
頭を整理するために記録しておきます。##開発環境
Laravel5.8
PHP 7.3.24
MAMP##1 OneSignalの登録
まずOneSignalの登録や、途中までの実装は[こちら](https://qiita.com/iritec/items/47c69c61c3731f63688c)のQiita記事を参考にさせていただきました。
登録方法は[document](https://documentation.onesignal.com/docs/web-push-typical-setup)にも書いてあるので、参考にしてみてください。##2 通知ON/OFFするやつ設置
JavaScriptを使って通知を登録するかしないか部分を実装します。
何を表示させるかは、OneSignalサイトの設定で、SUBSCRIPTION BELL(ベルマーク)やPUSH PROMPT(上からスライドで出てくる)を選べます。
私はベルマークを表示するように設定しました。そして表
関連する記事
iOS関連のことを調べてみた2020年01月28日 2020.01.28
目次 1. [Swift] Alamofire+RxSwiftでUpload APIクライアントを作る2. [iOS] Host Applicatio[…]
Python3関連のことを調べてみた2023年08月05日 2023.08.05
目次 1. ラズパイ 2つのプログラムを同時に動かす方法2. Pythonモジュールの基本3. 【AtCoder】ABC235 D – M[…]
Lambda関連のことを調べてみた 2024.04.03
目次 1. Lambda ってなんですか〜SkillBuildersってのがある話2. 拡張子がmjsとjsのファイルの違いについて3. StepFu[…]
Category
Back number
- 2024年9月
- 2024年8月
- 2024年7月
- 2024年6月
- 2024年5月
- 2024年4月
- 2024年3月
- 2024年2月
- 2024年1月
- 2023年12月
- 2023年11月
- 2023年10月
- 2023年9月
- 2023年8月
- 2023年7月
- 2023年4月
- 2023年3月
- 2023年2月
- 2023年1月
- 2022年12月
- 2022年11月
- 2022年10月
- 2022年9月
- 2022年8月
- 2022年7月
- 2022年6月
- 2022年5月
- 2022年4月
- 2022年3月
- 2022年2月
- 2022年1月
- 2021年12月
- 2021年11月
- 2021年10月
- 2021年9月
- 2021年8月
- 2021年7月
- 2021年6月
- 2021年5月
- 2021年4月
- 2021年3月
- 2021年2月
- 2021年1月
- 2020年12月
- 2020年11月
- 2020年10月
- 2020年9月
- 2020年8月
- 2020年7月
- 2020年6月
- 2020年5月
- 2020年4月
- 2020年3月
- 2020年2月
- 2020年1月
- 2019年12月
- 2019年11月
- 2019年10月
OTHERカテゴリの最新記事
- 2024.09.20
JAVA関連のことを調べてみた
- 2024.09.20
iOS関連のことを調べてみた
- 2024.09.20
JavaScript関連のことを調べてみた
- 2024.09.20
Rails関連のことを調べてみた
- 2024.09.20
Python関連のことを調べてみた
- 2024.09.20
Lambda関連のことを調べてみた