- 1. 【第一回】コロナ過だから何かできることをー 自宅療養者連絡ツール ー
- 2. 【Laravel】動的プロパティとリレーションメソッド。そしてN+1問題を真剣に調べてみた
- 3. DockerでMailHogを使ってPHPのメール送信確認をする
- 4. Laravel パスワードリセットメールのデザイン変更
- 5. [CakePHP3]フィールド同士を比較する
- 6. laravel6でlaravel/uiをインストールしようとしたらmmap() failed: [12] Cannot allocate memoryとエラーが出た
- 7. ジェイエフラボのTSV
- 8. イチから composer のプロジェクトを作成する方法
- 9. 7行のコードだけでTwitterのアイコン画像を変えるプログラム+自動更新もする
- 10. [PHP入門]MySQLに繋いでテーブルデータをapacheを使って表示する(MAC向け) (1)
- 11. MAMP ルートが合っている、URLも間違ってないよな… ローカルサーバーが開けない!
- 12. CakePHP で可変なページネーションを実装する
- 13. Laravel8:ログイン後にユーザーごとのページ(マイページ)にリダイレクトさせる
- 14. 【Laravel5/6/7/8対応】既存のDBからmigrationファイルを作成する
- 15. PHP のエラーメッセージ Cannot access offset of type string on string in …
- 16. laravelでメール送信・ログイン・マイページ機能を備えたsnsを作ってみた
- 17. React.js + Laravel SPA開発チュートリアル(動画版)
- 18. SymfonyFormで郵便番号や電話番号の分割フィールド
- 19. 【PHP】アクセス修飾子(public、protected、private)の違い
- 20. 【Laravel】中間テーブルの値をDateTime型で取得したい
【第一回】コロナ過だから何かできることをー 自宅療養者連絡ツール ー
#まえがき
###お前の力はこんなもんじゃないだろう!
>「 国を変えるのは、政治家じゃない、サラリーマンだ!」(エンゼルバンク)
まだまだ技術力不足で自分一人では実現不可能だったので公開します。
こんな時代だからこそ人を豊かにする道具をもっと作っていけたらいいなって思ってます。#実装イメージ図
LINEを利用して保健所の担当者の負担を軽減するとともに、自宅療養者はいつでもつながっている安心感を持たせるためのツールイメージです。![2021_09_03 7_27 Office Lens.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/744261/c70538e9-0267-d49d-e0c9-66493779a7ca.jpeg)
#実装イメージ図
担当者と自宅療養者とのLINEの連携部分は完成しました。
次回、第二回で設定方法を説明します。それに合わせて、担当者が操作するPC画面も併せて開発していきます。
DockerでMailHogを使ってPHPのメール送信確認をする
Dockerでメール送信確認をする時に、sendmailの設定をしないといけなかったり、うまく外に出ていかなかったり面倒な場合がありますが、[MailHog](https://github.com/mailhog/MailHog)を使うと簡単にできます。
また、メールは実際には送信されないので、テストのつもりが間違ってメールを送ってしまった!という心配もないので安心です。
(PHPのアプリケーションでメール送信する場合について書きます。)# 設定
## MailHogを導入MailHogを`docker-compose.yml`のサービスに追加します。
“`yml:docker-compose.yml
services:
mailhog:
image: mailhog/mailhog
ports:
– 8025:8025
“`## アプリケーションの設定
### 1. PHPのmailをMailHogに変更する場合フレームワークの設定(後述)で設定してもいいですが、ローカルと本番で設定を変えたくない等
Laravel パスワードリセットメールのデザイン変更
##はじめに
今回の記事はLaravelにある
パスワードリセット機能、こちらのメール部分の編集方法を
忘れないようにメモを残しておきます。## パスワードリセットメール
まず、デフォルトの画面をみてみましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924660/64587b00-ee0b-1b1e-a283-e88f85d7a968.png)
はい。見事に英語ですね
おまけに、上の方にLaravelのロゴ入りですこれだとメールが届いたユーザーが困惑してしまうので
メールの文章を編集していきましょう“`
vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php
vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php
“`
上記の2ファイルがパスワード
[CakePHP3]フィールド同士を比較する
“`
$query->where(function ($exp) {
return $exp->gte(‘hogehoge’, new IdentifierExpression(‘fugafuga’));
});
“`これで
“`
SELECT * FROM foo WHERE hogehoge >= fugafuga;
“`となる
laravel6でlaravel/uiをインストールしようとしたらmmap() failed: [12] Cannot allocate memoryとエラーが出た
はじめてQiitaに投稿します。
間違っている箇所もあるかもしれませんので、あればご指摘どんどんよろしくお願いします!laravel6でlaravel/uiをインストールしようとしたら予期せぬエラーに出くわしたので、備忘録も含め投稿します。
## 環境
– Windows10
– php7.4.3
– wsl2(Ubuntu)
– laravel 6.20.34## きっかけ
laravelでlaravel/uiをインストールしようと下記のコマンド実行
“`bash
php artisan require laravel/ui “^1.0” –dev
“`## エラー発生
下記のエラーが発生した!!なんじゃこりゃ~!?
“`jsx
mmap() failed: [12] Cannot allocate memorymmap() failed: [12] Cannot allocate memory
PHP Fatal error: Out of memory (allocated 1029541888) (tried to allocate 204
ジェイエフラボのTSV
https://github.com/JFLABO/tsv/blob/main/README.md
イチから composer のプロジェクトを作成する方法
## この記事について
普段新しくプロジェクトを作成するとき、Laravel であれば `laravel new` や `composer create-project` コマンドで作成する方法が一般的ですが、なにもフレームワークを用いずにプロジェクトを作成する場合には `composer init` コマンドで作成します。本記事ではその手順について説明します。今回は「**新人プログラマ応援**」タグをつけました。PHP プログラミングを始めたばかりで練習の際に名前空間を使わずにコードを書いている方がいたら、ぜひ以下の手順を参考にして名前空間を使ったプログラムを書いてみてください。
## はじめに
### 前提
PHP と composer はインストールされているものとします。自身の PC 内で実行する場合でも Docker を使ってコンテナ内で実行する場合でも同じです。
### 目的
普段仕事でイチからプロジェクトを作ることはほとんどないと思いますし、あったとしてもフレームワークが提供するテンプレートを使用するでしょうから、あくまでも目的は練習のためです。私はときどき
7行のコードだけでTwitterのアイコン画像を変えるプログラム+自動更新もする
どうも。なんかTwitterをインタラクティブに活用したいなと思って**Twitterのユーザーアイコンを定期的に変更する**プログラムを作りました。
…と言っても既存にあるかもしれませんが調べるくらいなら書いたがいいだろって感じで**なるべく短く**PHPで書きました。
https://github.com/ichii731/php-examples/tree/main/Twitter_IconChange
※プログラムとか良く分からない人でも使えるよう配慮はしたつもりです。
## サンプルコード&設定手順
まず以下のリポジトリのReleaseから`Twitter_IconChange.zip`を落としてください。https://github.com/ichii731/php-examples/releases/tag/3
次に**`composer install`**を実行してください。Compser環境必須。
DLしたら`.env.example`を`.env`にリネームして環境変数にTwitterの開発者キーをセットしてください。
CKにはAPI Key・CSに
[PHP入門]MySQLに繋いでテーブルデータをapacheを使って表示する(MAC向け) (1)
# 対象の読者
MAC環境での記事となります。MySQLで作ったテーブルをphpで取得し、apacheを使ってページを出力する方法を示しています。何か、指摘がある場合は遠慮なく是非お願いします!
以下のような、出力をすることを目指します。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309709/c09e7d54-7ad7-8e60-9873-9e2d80f1cbef.png)
# apacheの準備
apacheとは、Apache(アパッチ)とは世界中で使用されているWebサーバーソフトウェア(HTTPサーバー)です。(https://www.kagoya.jp/howto/rentalserver/apache/)
他にもサーバーはあると思いますが、今回はapacheを用いてサーバーの環境を整えています。まず、自分のMACにapacheが入っているかを以下のコマンドで確認できます。“`
$ which httpd
-> /usr/sbin/httpd
“`
“
MAMP ルートが合っている、URLも間違ってないよな… ローカルサーバーが開けない!
Udemyのカリキュラムをしていて
MAMPのルートを正しく設定しURLを正しく入力した!
よし、出力してみよう!![d64e7170efa36d186d7a59f587f91741.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1678154/56d0ac0a-4f45-99be-da73-df0277feaa0c.png)
絶望ですよね…
しかし色々ググっていると
**そもそもサーバーは正しいポートで入力したか?**
このように合ったので自身のMAMPのPreferencesを開き
PortsのApache Portの数値を確認すると
カリキュラムで説明してあるポート番号と違うやんけ!!正しいポートをURLに入力すると
![PHP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1678154/4455e3ed-7e62-dd01-a585-69ed54085cf9.png)
無事、開けました!!
CakePHP で可変なページネーションを実装する
## はじめに
SESの現場の中でページネーションの実装をしました。
その際、初めてsessionを使ったりajaxを使ったりしたのでこんなことしたっていう備忘録で
記事を作成しました。## 処理の流れ
全体的な流れとしては以下の通りとなります。“`
セレクトボックス変更 => ajax呼び出し => コントローラー呼び出し => セッションに値を保存 => リロード
“`#### コード
変数$perPageにセッションで管理する値を持たせてます。それを三項演算子で判別して選択されるようにしています。“`index.php
= $this->Form->create (null,[ “type” => “post”]); ?>
Laravel8:ログイン後にユーザーごとのページ(マイページ)にリダイレクトさせる
## 前提
PHP7
Laravel8
Jetstream
を導入済み## やりたいこと
jetstreamのログイン機能でログインしたあと、各ユーザーのIDごとのページにリダイレクトさせたい。## 準備
RouteServiceProviderの「HOME=◯◯」の部分にリダイレクトさせたいURLを入れる。
このとき、◯◯の部分は第2引数を持てないのでここでは一旦「redirects」というアドレスに飛ばして、その後パラメータ付きのURLに遷移させる。“`app/Providers/RouteServiceProvider.php
class RouteServiceProvider extends ServiceProvider
{
/**
* The path to the “home” route for your application.
*
* This is used by Laravel authentication to redirect users after login.
*
* @var
【Laravel5/6/7/8対応】既存のDBからmigrationファイルを作成する
こんなテーブルがある場合に
“`php
+—————-+————–+——+—–+———————+——————————-+
| Field | Type | Null | Key | Default | Extra |
+—————-+————–+——+—–+———————+——————————-+
| id | int(7) | NO | PRI | NULL | auto_increment |
| password | varchar(255) | NO | | NULL |
PHP のエラーメッセージ Cannot access offset of type string on string in …
エラーメッセージの意味がよくわからなくて苦労したので、備忘録として。(ネットで記事が見つからなくて困りました。特に日本語のもの。)
この記事は、PHP8.0 でのものですが、たぶん、もっと以前のバージョンでも同様です。## メッセージの意味
このエラーメッセージは、
「文字列に対して【文字列型のオフセット】でアクセスすることはできません!」
という意味です。## エラーが起こる原因
配列の構造を勘違いしていることが原因です。配列に格納されている、文字列型の要素にアクセスするキーに対して、(実際には文字列型なのに、配列型の要素が格納されていると勘違いして、)うっかり、[その文字列型の要素にアクセスするキー][文字列型のキー]でアクセスしようとすると、このエラーメッセージが出ます。
エラーが起こる場面としては、配列に【文字列型のキー】を使って要素を追加したり、【文字列型のキー】を使って要素を読み込もうとする場合が考えられます。(下記の例を参照)
## エラーの背景
PHP は、文字列に対して「[]」(半角角カッコ)を使うと、それを「オフセット」と解釈します。それは、配列の要
laravelでメール送信・ログイン・マイページ機能を備えたsnsを作ってみた
普段はpythonを使っているが、この度laravelを使った開発にも手を出してみた。
実装した機能などは極力自作、コマンドの使用は最小限に。##使用言語
php
laravel
html
scss
ちょっとjs##完成物
![17E6C5B3-E75A-417B-9DDC-9E22F92B798E_1_201_a.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2074981/4af22cdb-cc81-9bb8-0896-a679c0614606.jpeg)
トップページからは、新規会員登録、ログイン、お問い合わせ画面に遷移ができる。①新規会員登録した場合、ログイン画面に遷移。ログインした場合は掲示板画面に遷移
②ログインした場合、ログイン後の画面に遷移。(以下の画面)
![FF5605EF-DD68-42B1-ACCC-DBF510CC8082_1_201_a.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com
React.js + Laravel SPA開発チュートリアル(動画版)
React.jsとLaravelを使用してSPAなToDoアプリを開発する講座を動画(Youtube)で作成しました。
よろしかったらぜひ!# 第1回 アプリケーションのデモ
この講座で開発するアプリケーションの動作デモです。[![第1回 アプリケーションのデモ](http://img.youtube.com/vi/hPjcbKtpTjY/0.jpg)](https://youtu.be/hPjcbKtpTjY)
# 第2回 Laravel8のインストールと初期設定
バックエンドから作るので最初はLaravelのインストールです。[![第2回 Laravel8のインストールと初期設定](http://img.youtube.com/vi/qoFYXNb0TEw/0.jpg)](https://youtu.be/qoFYXNb0TEw)
# 第3回 データベースの設計と構築
Migrationでデータベースの作成と、Factory/Seederという機能を使用してダミーデータの登録を行います。[![第3回 データベースの設計と構築](http://img.youtub
SymfonyFormで郵便番号や電話番号の分割フィールド
こんなよくありそうな入力フォーム
![スクリーンショット 2021-09-23 23.39.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2057677/c66dbfcc-c91c-24b6-49af-5beabb4de573.png)想定するEntityは以下の様
“`
/**
* @ORM\Column(type=”string”, length=8, nullable=true)
*/
private $postal;
“`つまりEntityでは`$postal`の文字列のみで、入力フォームは分割したい。
意外と探しても情報がなかったのでできた方法をメモする# 郵便番号用のFormTypeを作成
“`
【PHP】アクセス修飾子(public、protected、private)の違い
#はじめに
私は、少し前まで、`public`などのアクセス修飾子について、functionの前についている利用範囲を示すもの程度の認識しかなかったため、備忘録として残しておきます。#アクセス修飾子
アクセス修飾子とは、クラス内のプロパティやメソッドをどの範囲まで利用することができるか(どこからアクセスできるのか)を定義するものです。
それでは、早速3つのアクセス修飾子の違いについて見ていきましょう。# ①public
クラスの内外にかかわらず、__どこからでも__アクセスが許可されます。
※ アクセス修飾子をつけずに宣言したメソッドは、`public`が指定されたものとみなされます。# ②protected
__クラス内__と__そのクラスを継承したクラス__からのアクセスが許可されます。
# ③private
__クラス内でのみ__アクセスが許可されます。
継承したクラスからもアクセスできません。#おわりに
上記ような基本をしっかり頭に入れて、外部から変更されては困るようなプロパティは`private`を指定するなど、アクセス修飾子を適切に使いましょう。
【Laravel】中間テーブルの値をDateTime型で取得したい
## 目的
多対多のモデルがあり、中間テーブルにはDatetime型のフィールドがあるとします。
たとえば下記のように、ユーザーが複数のスクールに通っており、それぞれのスクールを開始した日時をもっているとき、
![名称未設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1995792/0ff91b81-fccc-ae0f-72e2-bd16cae0e749.png)開始日時をDateTimeで取得し、format()などのメソッドをそのまま使いたいときのモデル定義はどうすればいいかについて、覚書を残します。
“`php
foreach($user->schools as $school){
echo $school->pivot->start_at->format(‘Y年m月d日’); // Datetimeにキャストされた状態で値を取得したい
}
“`## 結論
カスタム中間テーブルモデルを定義し、そこに日付ミューテタを追加します。## 手順
### 1. カスタム中間テーブル