- 1. PHPのアクセス修飾子でクイズ
- 2. Laravel + Vue.jsでaxiosからのリクエストが失敗した単純なミス
- 3. Laravelでメールサーバを複数利用する
- 4. laravelで画像投稿処理を実装する
- 5. 【PHP初級㊲】配列応用3
- 6. 【PHP初級㊱】配列応用2
- 7. 【PHP初級㉟】配列応用1
- 8. Laravelにおける2重サブミット防止
- 9. PHP 現場で使った愉快な配列メソッド達
- 10. bladeファイルの@if文が機能しなかった。
- 11. ★備忘録 Laravel Guardを使用しての認証カスタム
- 12. 【PHP初級㉞】for文応用6
- 13. PHP: Yahoo 郵便番号検索API の使い方
- 14. 【例外処理】専用の例外クラスを作るとエラー後の分岐処理が実装しやすい
- 15. PHPファイルを自動整形(vscode,intelephense)
- 16. エラーを無視せずLaravel9プロジェクトを作成する
- 17. laravel FakerPHPを使ってダミーデータを生成する
- 18. laravel CarbonImmutableインスタンスのタイムゾーンを変更する
- 19. laravel タイムゾーンを指定してCarbonImmutableインスタンスを生成する
- 20. ローカル環境でLaravel9を使えるようにする
PHPのアクセス修飾子でクイズ
## PHPのアクセス修飾子
“`php
// PHPのバージョンは8.0.3とする
class Super {
// public、protected、privateそれぞれのパターン
アクセス修飾子 $name;public function __construct(string $name)
{
$this->setName($name);
}public function setName(string $name): void
{
$this->name = $name;
}public function getName(): string
{
return $this->name;
}
}class Sub extends Super {
public function __construct(string $name)
{
parent::__construct($name);
}
}$sub = new Sub(‘佐藤さん’);
$sub->name = ‘鈴木さ
Laravel + Vue.jsでaxiosからのリクエストが失敗した単純なミス
## 環境
* Laravel:6
* Vue.js:2.6.14
* axios:0.19
## 事象
Laravel + Vue.jsでaxiosからの`put`リクエストでデータを更新しようとしたのですが、
以下のようなエラーでうまくいきませんでした。“`javascript:resources/js/components/ExampleComponent.vue
const response = await axios.put(‘books/’, {
data: val,
}).catch(e => {
console.log(e);
});
“`ChromeのDevToolsより
“`
Request Method: PUT
Status Code: 405 Method Not Allowed
“`
エラー405が返ってきてしまいました。
## 原因
そもそもLaravelのルーティングのメソッドが`patch`だったのに、axiosのエイリアスを`put`にしていたことが原因でした。“`php:routes/web.php
Ro
Laravelでメールサーバを複数利用する
# はじめに
とあるシステムで外部メールサーバと社内メールサーバを切り分けて利用するケースがありましたので、備忘録がてら記載します。FWというか通常のシステムでも複数メールサーバの切り分けはあんまりやらない気がするので、需要は薄いと思いますが・・・
# やること
以下のメール設定値をオーバーライドして、メール送信時の設定を切り替える。## 1. 環境設定値の追加
“`diff_php:.env
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=”hello@example.com”
MAIL_FROM_NAME=”${APP_NAME}”+ CUSTOM_MAIL_HOST=mailhog
+ CUSTOM_MAIL_PORT=1025
+ CUSTOM_MAIL_USERNAME=null
+ CUSTOM_MAIL_PASSWORD=null
+ CUSTOM_MA
laravelで画像投稿処理を実装する
# 前書き
現在独学でlaravelを使ったポートフォリオの作成に取り組んでいます。
今回は画像登録・表示処理で詰まったところを備忘録として投稿します。# 環境
https://qiita.com/ucan-lab/items/56c9dc3cf2e6762672f4
上記記事に準じて環境構築を行っています。
# 実現したいこと
・作成済みのユーザーページを編集する際に、名前、年齢の他にアイコンとして画像を登録できるようにする。
・登録した画像を表示する。# 対応方法
①編集フォームにinputタグを設置し、ファイルを送信できるようにする。
“`php:edit.blade.php“`
*formにtype
【PHP初級㊲】配列応用3
[問題] (参照:http://www.cc.kyoto-su.ac.jp/~mmina/bp1/hundredKnocksPrimary.html)
{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、整数値を入力させ、要素番号が入力値の配列要素の値を参照し、さらにその参照した値を要素番号とする配列要素の値を参照して表示するプログラムを作成せよ。入力値が配列の要素の範囲外であるかどうかのチェックは省略してよい。
# コード
“`php
$a = [3,7,0,8,4,1,9,6,5,2];
$m = intval(fgets(STDIN));
$i = $a[$m];
echo $a[$i];
“`↓「6」と入力
# 結果
“`
2
“`
【PHP初級㊱】配列応用2
[問題] (参照:http://www.cc.kyoto-su.ac.jp/~mmina/bp1/hundredKnocksPrimary.html)
{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、整数値を2つ入力させ、要素番号が入力値である2つの配列要素の値の積を計算して表示するプログラムを作成せよ。入力値が配列の要素の範囲外であるかどうかのチェックは省略してよい。
# コード
“`php
$a = [3,7,0,8,4,1,9,6,5,2];
$m = intval(fgets(STDIN));
$i = intval(fgets(STDIN));
echo $a[$m] * $a[$i];
“`↓
「4
8」 と入力# 結果
“`
20
“`
【PHP初級㉟】配列応用1
[問題] (参照:http://www.cc.kyoto-su.ac.jp/~mmina/bp1/hundredKnocksPrimary.html)
{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、整数値を入力させ、要素番号が入力値である配列要素の値を表示するプログラムを作成せよ。入力値が配列の要素の範囲外であるかどうかのチェックは省略してよい。
# コード
“`php
$a = [3,7,0,8,4,1,9,6,5,2];
$m = intval(fgets(STDIN));
echo $a[$m];
“`↓「0」と入力
# 結果
“`
3
“`
Laravelにおける2重サブミット防止
# 初めに
私は、業務系のWebアプリケーションを作っているエンジニアです。問合せでよくあるのが実行ボタン押しても、なかなか画面が変わらなくて、もう一度押したらエラーになりましたってやつ。
(なんで対策してないんだよ・・・)てことで、Laravelにおける2重サブミット防止方法は以下の通りです。
# 2重サブミット対策
やることは2つ!* バックエンドで、リクエストを受けてからトークンを再生成させる。そうすると、レスポンスが返る前に再度サブミットされるとトークンミスマッチ(419:TokenMismatchException)になる。
* フロントエンドで、ボタン押下後にボタンを非活性にする。## サーバーサイド
### 1. コントローラ
トークンを再生成した状態で、レスポンスが返る前に再度サブミットされるとトークンミスマッチが発生します。
※2〜3は、コード修正不要。“`php
$session->regenerateToken();
“`
### 2. ミドルウェア
トークンマッチをチェックする。
※標準で設定されてるので、追加は不要。“`php:
PHP 現場で使った愉快な配列メソッド達
## はじめに
今回は現場で使用した配列メソッドの使用方法についてまとめました。
すべての使い方を紹介しているわけではないのでご了承ください。
また、この記事を読んでぜひとも愉快なエンジニアになる一助になれば嬉しいです。## 紹介する愉快な配列メソッド達
・array_key_first
・array_key_exists
・array_keys
・array_merge
・in_array
・array_search
・array_column## array_key_first
配列内の先頭メソッドを取得します。
連想配列の場合は、先頭keyを取得します。
https://www.php.net/manual/ja/function.array-key-first.php“`php
$array = [
‘A’ => ‘a’,
‘B’ => ‘b’,
‘C’ => ‘c’,
];$result = array_first($array);
print_r($result); // 結果:A
“`## array_key_exists
指定したkey
bladeファイルの@if文が機能しなかった。
laravelでナビバーを作成中に、
認証前と認証後の記述を変更したく@if文を記述したら
ブラウザで文字として出力されてたのでまとめます。“`nav_blade.php