- 1. Laravel5.5 FormRequest が実行されない??
- 2. Laravel Auth ログイン後のリダイレクト先をデフォルトから変更する リメイク編
- 3. 【Laravel】seedデータの作り方
- 4. ajaxで連想配列を渡す際にハマった話
- 5. PDO 接続までの流れ一覧
- 6. PHP勉強日記
- 7. Laravel はじめました [2. 準備]
- 8. ボディマス指数の計算方法(BMI)
- 9. ストレージアカウントのMIME Typeを設定する
- 10. Bootstrapをオフライン環境で使用する方法
- 11. Laravel 8 のプロジェクトを適当に作る
- 12. みんなの株式からスクレイピングするとこうなる感じでしょう的な・・・。
- 13. 10年間のエンジニア生活と勉強したこと、いま考えていることを振り返る
- 14. Laravel+GuzzleでホットペッパーAPIを叩いてレストラン情報を取得する方法
- 15. 標準入力 電話番号のハイフンを消して一文字ずつ配列に入れる方法
- 16. Laravel/Dusk でブラウザテストする際のちょっとしたTipを2つほど
- 17. はじめてのLaravel環境構築(Docker)
- 18. Crostini + Laradock でChromebookのPHP開発環境をつくる
- 19. EloquentModelのコンストラクタを正しく宣言するには
- 20. PHP exec , execute 違い
Laravel5.5 FormRequest が実行されない??
#はじめに
入力フォームのバリデーションにはいくつかの種類があるんやけど。
わいが一番好きなのは`FormRequest`なんや。なんでかって??
それはバリデーションだけ別ファイルに書くことになるからや。
コントローラーにバリデーション書くとコントローラーが読みにくくなるのを防いでくれるところがいいよね。そんな、FromRequest大好きなわいが時々起こしてしまう事件に対してのQiitaです。
みんなもこんなことならんようきいつけて〜や。#現象
入力フォームで何かしら入力し送るとバリデーションエラーないし、データ送信ができるはずなんやけど、何も表示されないまま、入力フォームに画面が戻ってくる現象に関してWHY :disappointed_relieved:となったのでQiitaを書きます。
なんも表示されてないから何が起きているのかわかんない。そんな時、大体ここら辺が原因かなって心当たりがあることを書いていきます。
・FormRequestの指定が間違ってる。
・入力フォームにエラー表示されるようなコードを書いていない。
・誤字FormRequestを作成す
Laravel Auth ログイン後のリダイレクト先をデフォルトから変更する リメイク編
# 目的
– Authのログイン認証後にリダイレクトするページをデフォルトの設定から変更する方法をまとめる
# 環境
– ハードウェア環境
| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |– ソフトウェア環境
| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.8 | Homebrewを用いてこちらの方法で導入→[Mac HomebrewでPHPをインストールする](https://qiita.com/miriwo/items/cd54077aad7e139cf518) |
| Lara
【Laravel】seedデータの作り方
“`php
create();
User::create([
‘id’ => ‘100’,
‘name’ => ‘田中太郎’,
‘name_kana’ => ‘タナカタロウ’,
‘email’ => ‘test@rikai.technology’,
‘tel’ => ‘1234567890’,
‘password’ => bcrypt(‘password’),
]);
}
}
“`database/seeds/UserTableSeeder.phpにこ
ajaxで連想配列を渡す際にハマった話
#ajaxで値を渡せずにハマった話
###発生した問題
javascriptのajax通信でphpに連想配列を渡そうすると、\$request->xxxや\$_POST[‘xxx’],\$reuqest->input[‘xxx’]の方法を使ってもnullになって、手も足も出ませんでした。###解決方法
エンコードが必要“`js
var hoge = {
name : ‘hoge’
}
$.ajax({
type: ‘POST’,
url: ‘1’, //個人で変えてください
contentType: “application/json”,
data: JSON.stringify(hoge),
dataType: ‘text’,
})
“`このように記述することで、phpで\$request->nameで呼び出す事が出来ます。js側でエンコードした連想配列を渡しただけなので、おそらく、php側でのデコードも必要だと思いますが、とりあえず動いたので、後日調べようと思います…
投稿中に気づ
PDO 接続までの流れ一覧
#はじめに
この記事を見ればMacのローカル環境に“`MySQL“`をいれて、“`PDO“`を使いターミナル上で実行結果を表示させるまでの流れが分かります。
(※PHPはローカル環境にインストールされている前提です。)環境は“`PHP7.3.11“` 、“`MySQL8.0.23“`になります。
PHPを学習する中、現代は“`MAMP“`や“`Docker Compose“`での環境構築の方法が巷に溢れているせいでなかなか“`MySQL“`単体をローカルに入れて使用するという機会が少ないように思います。 また、“`TablePlus“`などのGUIツールの発展によりターミナルで完結させる機会も減ってきていると思うので改めて復習をしました。
##1、 HomebrewでローカルにMySQLがインストール済みか確認する
“`
$ brew list
“`##2、 HomebrewでローカルにMySQLをインストールする (※ローカルにMySQLがインストールされていない場合)
“`
$ brew install mysql
“`
※もし
PHP勉強日記
・目的
以前質問等にも記載しましたが、
「PHPとMySQLでプルダウン表示をしながら、最終的に複数のプルダウン項目を選択して合計金額等を算出できるようなものを作成する」
という目標を掲げながら勉強を行っています。・現在(3/18(木曜日))
現在の進捗ですが、やはりプルダウン表示ができない状態にあり、もう一度PHPの勉強をし直しながらもう一度やり方を調べている状態。また、A項目のプルダウンを選択した段階でAと組み合わせることができるものを更新してB項目のプルダウンを表示するといったことをするにはJavaScriptでやるのが望ましい?
以前質問させていただいたもので、PHP7からサポートされていないものもあることから条件を絞ってもう一度調べ直すことが必要と考えています。1日ごとにできれば更新していければと思っています。
アドバイス等ありましたらコメントお願いいたします。進捗等も更新していきます。
何卒、よろしくお願いいたします。
Laravel はじめました [2. 準備]
※前回の記事は以下です
https://qiita.com/sosobl/items/616307285bee984ce60f
# 概要
– 日本語訳された公式ドキュメントに沿って実践していきます
– [Laravel Document 5.7 日本語(終)](https://readouble.com/laravel/5.7/ja/installation.html)
– 今回は [準備]編
– [インストール] は割愛# 準備 > 設定
## 環境設定
– ルートディレクトリにある “`.env.example“` ファイルに環境周りの設定を書きましょう
– ソース管理に含めてもよい– “`.env“` ファイルはソース管理ファイルに含めない
– こちらは環境により内容を変更しましょう
– サーバ内の環境変数として各変数を定義してもよい。最終的には環境変数で上書きされるとのこと。
– docker で動かす場合には環境変数を注入する仕組みが必要– “`.env“` ファイル内
ボディマス指数の計算方法(BMI)
HTML
適正体重サンプル
PHP
ストレージアカウントのMIME Typeを設定する
そのままアップロード処理を実行するとデフォルトでoctet-streamになってしまうっぽい。
CreateBlockBlobOptionsを使ってMIME Typeを設定、アップロードのオプションパラメータに付与すればOK“`php
use MicrosoftAzure\Storage\Blob\Models\CreateBlockBlobOptions;$options = new CreateBlockBlobOptions();
$options->setContentType(“image/png”);$result = $this->blobClient->createBlockBlob($this->containerName, $fileName, $image,$options);
“`Azureは分かりやすいマニュアルが少ない。。。
Bootstrapをオフライン環境で使用する方法
# はじめに
内に下記を追加するだけで使用できますが、こちらはCDNを利用した方法のためオフライン環境では使用することができません。
Bootstrapは\
“`“`オフラインで利用する場合は、Bootstrapの資材をダウンロードしてインストール作業等行う必要があります。
公式サイトにも手順が記載されていますが、個人的に分かりにくいと感じたので、こちらで手順をご紹介します。# 前提条件
本手順はリリース前の環境構築段階でインターネット接続できる状態を想定しています。
環境構築段階で既にオフライン状態である場合は、下記リンクの「コンパイルさ
Laravel 8 のプロジェクトを適当に作る
## 背景
Tipsの記事を書くのにいちいち前提条件を書かなくていいようにまとめる。
## プロジェクトの作成
“`sh
laravel new example-app
cd example-app
“`## データベースの設定
楽したいので SQLite を使う。
“`sh
touch database/database.sqlite
“``.env` を書き換えて、DB 周りの環境設定を SQLite に合わせる。
“`diff
– DB_CONNECTION=mysql
– DB_HOST=127.0.0.1
– DB_PORT=3306
– DB_DATABASE=example_app
– DB_USERNAME=root
– DB_PASSWORD=
+ DB_CONNECTION=sqlite
“`
みんなの株式からスクレイピングするとこうなる感じでしょう的な・・・。
みんなの株式からスクレイピングするとこうなる感じでしょう的な・・・。
尚、コマンドラインから打ってください。“`
minkabu.php minkabu 9432
“`$argv[2]には銘柄コードが入ります。
※いまは機能するコードですが、みんなの株式のHTML構造が変われば取り出し方を変更する必要があります。“`php:minkabu.php
loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
10年間のエンジニア生活と勉強したこと、いま考えていることを振り返る
#はじめに
最近、新人を教えることが何件か続き、社内でも勉強会をやることになったので、思ったことを思いついた順に書いていきます。
自身の振り返り兼どんなことを勉強したのか、どんな本を読んだのかを書いていきます。# 自己紹介
エンジニア歴12年
大手SIerにてシステム開発 6年
アフリカでふらふら 2年
ベンチャーにてシステム開発 4年
### 大手SIer時代
大手飲食チェーンPOS開発
大手カード会社基幹システム開発
大手放送会社基幹システム開発 など
重厚長大、予算○億、開発工数○000人月みたいなプロジェクトで働く。
スキルセット:Java,OracleDB,OracleEBSなど
###アフリカ時代
現地の職業訓練校の先生、生徒にPCの使い方、Webサイト作成などを教える
壊れたPC10台もらってきて3台の動くPCを作る など
###ベンチャー時代(現在)
フィリピンからリモート開発
月間500万PVのWebメディア運営
ECサイト作成
LP作成
Wordpressでサイト作成 などスキルセット:
PHP(Laravel、Symfony,EC-Cube)
mysql
Laravel+GuzzleでホットペッパーAPIを叩いてレストラン情報を取得する方法
こんにちは、くりぱんです。
## この記事で実現できること
– Laravel+Guzzleの開発環境構築
– HotpepperAPIでレストラン情報を取得する## 説明
今回はLaravel+GuzzleでホットペッパーAPIを叩いてレストラン情報を取得していきたいと思います。## 開発環境
– Laravel: 6.2
– Guzzle: 7.2## 実装の流れ
1. リクルートWEBサービスへ新規登録
1. Laravelプロジェクトの作成
1. Guzzleのインストール
1. Guzzleを使う前の準備
1. Route
1. Controller
1. View## 実装
### 1. リクルートWEBサービスへ新規登録
無料かつメールアドレスのみで簡単に登録できるので、[こちらよりアクセス](https://webservice.recruit.co.jp/doc/hotpepper/reference.html)して、新規登録ボタンをクリックして登録してください。
※記事執筆当時は左上辺りに新規登録ボタンがありました。新規登録が終わると登録
標準入力 電話番号のハイフンを消して一文字ずつ配列に入れる方法
#標準入力で役立つ関数
###str_replace();
[str_replace](https://www.php.net/manual/ja/function.str-replace.php)
文字列から任意の文字列を置き換える例)
“`php
$tel = ‘090-1111-2222’;
$t = str_replace(‘-‘,”,$tel);
//結果
//09011112222
“`###str_split();
[str_split](https://www.php.net/manual/ja/function.str-split.php)
文字列を配列に変換する。
第一引数に変換する文字列
第二引数に変換する文字の文字数
を指定“`php
$t = ‘09011112222’;
$arr = str_split($t,1);// var_dump($t);
/*
[0]=>
string(1) “0”
[1]=>
string(1) “9”
[2]=>
string(1) “0”
[3]=>
string
Laravel/Dusk でブラウザテストする際のちょっとしたTipを2つほど
# はじめに
Laravel/Duskを使い始めて標準で用意されていないケースが2つほどありました。
その対策を紹介したいと思います。# 1.CSSの情報を取得
ElementResolverとWebDriverのメソッドを活用します。
“`testExample1.php
public function testExample1()
{
$this->browse(function (Browser $browser) {
$browser->(略);
$opacity = $browser->resolver->findOrFail(‘div.hoge button’)->getCSSValue(‘background’); # buttonタグで指定されているStyleのbackground値を取得している
$this->assertEquals($background, ‘rgb( 128, 128, 128 )’); // 色情報はrgb関数で表記する。#は使え
はじめてのLaravel環境構築(Docker)
###開発環境
**Docker環境**
* PHP 7.4-fpm
* Composer 2
* NginX 1.15.6
* MySQL 8.0.19###以下を参照
DockerでLaravel環境を構築する①〜③
https://qiita.com/wjtnk/items/9d6a56a05bff2068cd2c
https://qiita.com/wjtnk/items/fa2b9d848bc64261d0e9
https://qiita.com/wjtnk/items/9e553f90f38e279a8b99##NginXの設定ファイルについて詳しい説明がなかった為、解説してみる
“`conf:default.conf
server {
listen 80; #IPとポートを指定するroot /var/www/html/laravel-app(プロジェクト名)/public; #ドキュメントルートを指定する
index index.php index.html; #index.phpがあればindex.php,なければindex
Crostini + Laradock でChromebookのPHP開発環境をつくる
ChromebookでPHP開発環境を作ります
Chrome OSのLinux環境(Crostini)を使います
PHPフレームワークLaravelの開発をお手軽にしてくれるLaradockをインストールして動かします。
「Laradockは、Docker用の完全なPHP開発環境(公式サイトより)」# Crostiniの基本的な環境構築
– 日本語化
– npm などのインストール
– Docker、Docker Compose のインストールなどはたくさん有益でわかりやすいな情報があるので、それぞれ参考にしてください。(参考になったサイトを下の方にまとめました)
# Laradockのインストール
[Laradock公式サイト](https://laradock.io/)
公式サイトで丁寧に解説してくれているので、この通りでインストールできます。適当な場所にて
“`sh:ターミナル
git clone https://github.com/Laradock/laradock.git
“`環境ファイルを作成(いったんそのまま)
“`sh:ターミナル
c
EloquentModelのコンストラクタを正しく宣言するには
# はじめに
Modelのコンストラクタに必要な設定が施されていないがために、FactoryでModelを生成した際にModelの値が何も設定されていない、という現象に出くわしました。
コンストラクタ宣言時の注意点について備忘として残します。## バージョン情報
PHP: 7.4
Laravel: 5.7 (古い。。。)
Vessel: 6.0## 結論
先に結論を書きます。
Modelのコンストラクタを宣言する場合、親クラスのコンストラクタを呼び出す必要があります。
`parent::__construct($attributes)` で親クラスのコンストラクタを実行することで、Modelの初期化に必要な処理が実行されます。
↓の継承元の親クラス(Modelクラス)のコンストラクタを見てみると、いくつかの処理を実行することで初期化をしていることがわかります。
`parent::__construct($attributes)` を実行しないことで、HogeModelは知らぬ間にコンストラクタをオーバーライドしてしまっていたようです。“` Hoge.php
PHP exec , execute 違い
#プリペアドステートメント使えるかどうか
参考:
https://www.php.net/manual/ja/function.exec.php
https://www.php.net/manual/ja/pdostatement.execute.php###exec
一方的なINSERT, DELETEで使える###execute
SELECTは必ずこっち