- 1. Laravel attribute original の違い
- 2. 【Laravel】フォームのバリデーションエラー時に入力された値を保持する
- 3. Excelデータをweb上でも管理するアプリ作成[laravel]
- 4. Laravel8 ソートとページネーションを組み合わせる
- 5. 自作wordpressのテーマにwelcartのプラグインを編集利用する際に使う関数
- 6. SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: NO)を解決
- 7. Webサービスの認証についてまとめる
- 8. XAMPPでMysqlのポート番号を変更後にphpMyAdminに接続するとエラーになる
- 9. XAMPPでMySQLを起動しようとStartをクリックした際にエラーが出力された時の対処法
- 10. [php] 簡易版 位置情報APIの実装
- 11. 簡易的なclearlinuxベースのlumen環境
- 12. LaravelでJSのAjaxを使って非同期通信を行う
- 13. LaravelでOneSignalを使って特定ユーザーに通知する方法
- 14. Laravel Factoryで範囲指定のあるダミーデータを作成
- 15. PhpstomでのDockerローカル環境の開発におけるXdebugの設定手順
- 16. エラー文『Invalid argument supplied for foreach()』にハマった
- 17. Laravel SaleでのPHPのパス解決
- 18. PHPのmap()関数内でローカル変数を使う方法
- 19. Illuminate\Http\Requestについて雰囲気でやっていたので個人的にメモした
- 20. 繰り返し処理【PHP】
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.tok
【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://qiita
Laravel8 ソートとページネーションを組み合わせる
## 前提
下記記事に沿って、投稿記事の並べ替え機能を設定済みであること。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種類あります。この記事内での認証は一番使われることが多いであろう**相手認証**のことを指すとします。認証、認可などは誤解を生む言葉であり、いたずらに使うものではないと思いますが、一般的にログイン機能のことを認証と認識してる人が多いのでそういう文脈で使わせていただきます。
通信している相手が本人であるかを判断する材料は通常2つです。
**・
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(上からスライドで出てくる)を選べます。
私はベルマークを表示するように設定しました。そして表
Laravel Factoryで範囲指定のあるダミーデータを作成
いつからいつまでとか、◯◯のうちいずれか等、範囲指定のあるダミーデータを作成する。
## Fakerを日本語化する
“`config/app.php
‘faker_locale’ => ‘ja_JP’,
“`
ダミーデータに日本語が含まれる場合はapp.phpの`faker_locale`を日本語にする。## Factoryを作成する
“`
% php artisan make:factory RecordFactory –model=Record
“`
ファクトリを作成する。
モデルを指定しておけば、ファクトリファイルに`use App\Models\モデル名;`が自動で書き足される。## ファクトリファイルを編集(Fakerを使用)
“`database/factories/RecordFactory.php
use App\Models\Record;
use Illuminate\Database\Eloquent\Factories\Factory;
.
.
.
public function definition()
{PhpstomでのDockerローカル環境の開発におけるXdebugの設定手順
## 概要
表題の通り、PHPのDockerの開発環境でデバッグを行いたかったため、設定手順を残す## 環境
– macOS Big Sur (Version 11.4)
– PhpStorm 2021.2
– Docker Desktop for Mac(2021-08-23 時点の最新)
– PHP 8.0.0RC5
– Xdebug v3.0.4## 手順
### Xdebug設定ファイルの追加
php.ini等設定ファイルを格納しているディレクトリにxdebugのiniファイルを作成する
※ php.iniを直接編集してもよいが、設定内容をわかりやすくするため分ける“`xdebug-local.ini
[xdebug]
xdebug.idekey = phpstorm # 任意の名前
;xdebug.mode = off # 無効化する際はoffに書き換えて再ビルドする必要がある
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_host = host.docker.internaエラー文『Invalid argument supplied for foreach()』にハマった
タイトルに記載のあるエラーを解消するために小一時間戦っておりました。
今後、同じ失敗を繰り返さないために記録を残します。#事象
ECアプリ作成においてカートの実装をしていたのですが、indexメソッドにてforeachの引数エラーがでました。エラー文:Invalid argument supplied for foreach()
どうもこちらのエラーは「foreachの引数が不正だよ」という意味のようです。
“`CartController.php(indexのみ記載)
class CartController extends Controller
{
public function index()
{
$user = User::findOrFail(Auth::id());
$products = $user->products;
$totalPrice = 0;foreach($products as $product){
$totalPrice += $product->price * $product->Laravel SaleでのPHPのパス解決
## 概要
WSL2上でLaravel Sailで環境を構築しVSCodeを使用した際に、PHP関連のエクステンションを動かしたいが、PHPのパスが解決出来ていないと動作しないエクステンションがあり、その解決で動いた方法のメモ。WSL環境はWindows10、Ubuntu-20.04
## 方法
PHPを実行するファイルを作成する。
“`shell
sudo vi /usr/local/bin/php
“`以下の内容を記載して保存する。
内容的には、実行時のディレクトリ名を取得して、それを`Docker exec`の際のコンテナ名に使用して、PHPを実行する。コンテナ名はLaravel Sailのデフォルトになっているので、もしコンテナ名が異なれば適宜修正する。
“`shell
path=$(printf ‘%s\n’ “${PWD##*/}”)
command=”docker exec ${path}_laravel.test_1 php “$@””
$command
“`実行権限を付ける
“`
sudo chmod +x /usr/localPHPのmap()関数内でローカル変数を使う方法
Laravelを使っていた際に外で定義した変数をmap()関数内でグローバル定義したにもかかわらず値がnullだったので調べたところ下記の記事を見つけました。
https://stackoverflow.com/questions/48150838/how-to-access-to-variable-in-outside-the-map-function-in-laravel-php
#間違え例
“`php:MainController.php
public function myloc(Request $request){
$my_lat=$request->my_lat;
$my_long=$request->my_lon;$boxes->map(function($item,$key){
global $my_lat,$my_long;$item[‘distance’] .= $item->distance1($my_lat,$my_long)
Illuminate\Http\Requestについて雰囲気でやっていたので個人的にメモした
Controller内でRequestをいい感じに使えることができるように諸々まとめた
## リクエストされたURLを知りたいとき
クエリ文字列が必要ない場合は、以下“`php
$url = $request->url();
“`クエリ文字列が必要な場合は、以下
“`php
$urlWithQueryString = $request->fullUrl();
“`パスのみが必要な場合は、以下
“`php
$uri = $request->path()
“`## リクエストされたURL/メソッドによって処理を分けたいとき
“`php
if ($request->is(‘admin/*’)) {
// 処理
}
“`名前付きルートに一致するか確かめるときは、以下
“`php
if ($request->routeIs(‘admin.*’)) {
// 処理
}
“`リクエストメソッドが知りたいときは、以下
“`php
$method = $request->method();
“`リクエストメソッドが指定の
繰り返し処理【PHP】
こんにちは
PHP初心者です。
今回は繰り返し処理についてメモしていきます!# while
while構文はある条件が満たされるまで
処理を繰り返すことができます。書き方としては
“`php
初期化処理
while(繰り返す条件) {
繰り返したい処理
更新処理
}
“`
というカンジで例を出すと、
以下のような記述になります。“`php
$i = 1;
while ($i <= 100) { print($i . "\n"); $i += 1 } ``` 初期化処理は```$i = 1```にあたります。 変数iに1を代入したんですね。 繰り返す条件は```($i <= 100)``` これは$iが100以下であれはtrueとなり、 中かっこ{}の中身の処理を行います。 処理が行われる順番としては 1. $i = 1を定義 2. ($i <= 100)がtrueかどうか判断 3. 2がtrueになるのであれば、$iの値を出力 4. $iに1を加算 この順番で$i =100になるまで繰り返されます。 比較演算子<=が出てきたので関連する記事
OTHERカテゴリの最新記事
- 2024.09.19
JavaScript関連のことを調べてみた
- 2024.09.19
JAVA関連のことを調べてみた
- 2024.09.19
iOS関連のことを調べてみた
- 2024.09.19
Rails関連のことを調べてみた
- 2024.09.19
Lambda関連のことを調べてみた
- 2024.09.19
Python関連のことを調べてみた