PHP関連のことを調べてみた2021年08月25日

PHP関連のことを調べてみた2021年08月25日

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()))