- 1. 【php MyAdmin】 「エラー SQLクエリ:コピー」が表示された
- 2. baserCMSのページネーション(ページャー)のカスタマイズ
- 3. MarinDBのdelimiter
- 4. 【備忘録】Instagram Graph APIを使用してWEBページに正方形の画像を埋め込む
- 5. WordPressのmeta_queryを使って、指定値がmeta_valueに保存された配列に含まれるものを抽出したい
- 6. 1つのカスタム投稿に複数のタクソノミーを設定する
- 7. PHP(とちょっとLaravel)の細々とした覚書
- 8. (仮)Laravel Snappyにて、cssサイズが想定通りにする。(wkhtmltopdf側の設定をする。)
- 9. Cropper.jsで加工した画像をAjaxでLaravelに送り保存する。
- 10. Laravelで楽天APIのリクエスト制限を対策する
- 11. laravel/Carbon 期間を指定して日付文字列の配列取得する
- 12. 【Laravel】Requestで取得できる値の型を変換する必要性は?
- 13. PHPのバージョンが勝手に変更されてMongoDBにアクセスできなくなった話
- 14. Mac(PC)にてバックスラッシュ(\)を入力する方法
- 15. myAssignとは
- 16. 配列に値を追加する複数の方法
- 17. $thisってなんぞ?
- 18. コメントアウトの@return voidってなんぞ
- 19. blastengineを使ってPHPでメールを送信する
- 20. 1054 unknown column ‘email in ‘field list’はこれで解決した
【php MyAdmin】 「エラー SQLクエリ:コピー」が表示された
今回、初めての投稿になります。何卒宜しくお願い致します。
現在XAMMPを使ってPHPを勉強しているのですが、パソコンの不具合が生じたので、新しいパソコンに移動することになりました。
そこで新しいパソコンにデータを移動したときに下記のようなエラーが表示されました。
![その7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1203654/43b153d2-c992-47a4-e5a3-021ad98c62c4.png)##エラー
__SQLクエリ:コピー__
とのことです。そこでもう一度phpmyadminのsqlデータを移動する方法をまとめてみました
__[PC環境]__
● 故障したPC → window10 64ビット
● 新しく入れるPC → window10 64ビット (故障したPCとおなじものになります)主な流れを書くと次の通りになります。
__1、 前のパソコンからSQLデータをエクスポートする__
__2、 新しいパソコンでXAMMPをインストールする__
__3
baserCMSのページネーション(ページャー)のカスタマイズ
baserCMS公式の、ページネーションのドキュメントが少ないので、私が把握していることをまとめます。
## 基本的な使い方
baserCMSでは「ブログ」のアーカイブページでページネーションが使用できます。
pagination関数が提供されています。“`php
BcBaser->pagination(); ?>
“`https://wiki.basercms.net/ver4/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/BcBaser_pagination
## 引数と出力内容
pagination関数には「出力するHTML」を変更する第1引数`$name`があり、テーマ側で何もしていなければ(後述)、受け付ける引数は3種類です。
CSSのみでカスタマイズするのであれば、ordered_listで良いかと思います。### default(または引数なし)
“`php
BcBaser->paginatio
MarinDBのdelimiter
# delimiterについて
この記事は主の備忘録用の物です。
投稿初期のものなので、諸々許してください。## 目的
MariaDBで、;を実行コマンドとして機能させないように、delimiterをつかおうと思ったのですが、すこし手こずりましたので、その解決方法の共有です。### エラーの内容
”’
MariaDB [test_db]> delimiter//
-> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘delimiter//’ at line 1
”’### 解決方法
解決方法はいたってSimpleでした。delimiterを大文字で使う
たったこれだけです。
以上でした。
【備忘録】Instagram Graph APIを使用してWEBページに正方形の画像を埋め込む
Instagram Graph APIを使用してInstagramの画像をwebページに埋め込む際に、少し手間取ったので備忘録として。
#実現したいこと
Instagram Graph APIを利用してInstagramから取得した画像をwebページに埋め込み、正方形のグリッド状に配置したい。#実装
Instagramのプロアカウント作成からwebページへの埋め込みまではこちらを参考に行った。#実装後に起きた問題
1. 画像が表示されない。
2. 画像をクリックしても投稿に飛ばない。
3. 取得された画像サイズが正方形ではないのでレイアウトが崩れる。#原因
###画像が表示されない。
* phpファイル内のGraph APIのバージョンが最新ではなかった。
* 目的のInstagramアカウントの投稿数が、Graph APIで取得する数(javascriptファイルの`photo_length`の値)より少なかった。
* javascriptファイル内の
WordPressのmeta_queryを使って、指定値がmeta_valueに保存された配列に含まれるものを抽出したい
WP_Queryのmeta_queryでin_array()的なことをしたくて探してたら
Stack Exchangeで見つけたので紹介します。単純に以下のように書く場合
“`php
$args = [
‘meta_query’ => [
[
‘key’ => ‘hoge’,
‘value’ => $id,
‘compare’ => ‘IN’
]
]
];
$query = new WP_Query($args);“`
「DBに保存されている値が配列$idに含まれる場合」
という逆の意味合いになってしまい正しく抽出されません。なのでDBにシリアライズ保存されたデータからLIKEを使って文字列で抽出するしかないそうです。
ただ$idが数字の場合、単に文字列化しても誤抽出が起こりやすいので、
こちらもシリアライズして前後の記号も含めLIKE抽出します。“`php
$args = [
‘meta_query’ => [
[
1つのカスタム投稿に複数のタクソノミーを設定する
![タクソノミ複数.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/552308/20841d2d-1874-5e7d-4dc0-a97a3ff3963b.png)
●スラッグ
「レッスン」 → lesson
「ギター」 → lesson_guitar
「ベース」 → lesson_bass
「ドラム」 → lesson_drum“`php:functions.php
//カスタム投稿タイプ追加
register_post_type(
‘lesson’, //カスタム投稿のスラッグ
array(
‘label’ => ‘レッスン検索’, //管理画面に表示される名前
‘hierarchical’ => true,
‘has_archive’ => true,
‘public’ => true,
‘menu_position’ => 5,
‘supports’ => array(‘title’,’editor’),
‘exclude_from_search’ => false,
));
//カスタムタ
PHP(とちょっとLaravel)の細々とした覚書
## foreachで値を直接いじくりたいとき
“`php
foreach ($data_array as &$data) {
$data[‘中身’][‘値’] = true;
}
“`
繰り返し処理のあとの`$data_array`を変更された状態にしたい場合は、値の変数に`&`をつける。## 値から配列のキーを取りたいとき
“`php
array_search(値, 配列);
“`定数クラス内の配列(`’定数が表すもの’=>定数`)からマジックナンバーを取り出したい時によく使ってます。
“`php
array_search($const, CONST_CLASS::CONST_LIST);
“`## 配列から任意の値を削除して、別の配列を作りたいとき
こちらを参照しました。[PHPで配列から特定の要素を削除する](https://qiita.com/Quantum/items/767dba44af81d1825248#%E8%A6%81%E7%B4%A0%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E9%85%8D%
(仮)Laravel Snappyにて、cssサイズが想定通りにする。(wkhtmltopdf側の設定をする。)
※私的備忘録のため、乱雑に記載しています。
###【問題点】
– Laravel Snappy にて、cssが想定通りに出力されない###【原因】
– wkhtmltopdf にて、自動調整がdefaultでonになっている。###【解決方法】
– snappyのsetOptionにて、以下のように設定すれば良い。
“`->setOption(‘disable-smart-shrinking’, true);“`※wkhtmlでは、“`–disable-smart-shrinking true“` を追加してあげれば良い。
Cropper.jsで加工した画像をAjaxでLaravelに送り保存する。
この記事では、Cropper.jsを利用し画像を加工したあとに、加工した画像をAjaxを通してLaravelに渡し、その画像を保存する方法を紹介します。
Cropper.jsは、ライブプレビューとカスタムアスペクト比をサポートしており、JavaScript / jQueryプラグインを画像のトリミングに利用するのに便利です。
# 事前準備
## 1. フォルダの作成ファイルを保存する先のフォルダを作成します。
今回、コントローラで指定するフォルダは「storage/app/public/upload」です。
ファイルをアップロードして画像を切り取って保存を押すと、このフォルダに保存されます。
# バックエンド側
## 2. ルーティング
次に下記のルーティングを設定してください。
“`routes/web.php
Route::get(‘image-cropper’,’ImageCropperController@index’);
Route::post(‘image-cropper/upload’,’ImageCropperController@upload
Laravelで楽天APIのリクエスト制限を対策する
# はじめに
Laravelで楽天APIを使ったWEBアプリを開発していたところ、APIを提供している[楽天ウェブサービスのヘルプページ](https://webservice.faq.rakuten.net/hc/ja/articles/900001974383-%E5%90%84API%E3%81%AE%E5%88%A9%E7%94%A8%E5%88%B6%E9%99%90%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84-)でリクエスト制限があることを知りました。>1つのapplication_idにつき、1秒に1回以下のリクエストとしてください。
アフィリエイトサイトとして高い成果が見込まれる場合は制限緩和ができるみたいですが、そうでない場合はAPIの使用が制限されています。
もし継続的に制限を超えたリクエストを行った場合はアプリIDが利用停止になる可能性があるみたいなので対策が必要だと考えました。楽天APIの実装方法についての記事はいくつかありましたが、リクエスト制限まで触
laravel/Carbon 期間を指定して日付文字列の配列取得する
# laravel/Carbon 開始日付・終了日付指定し、その期間の文字列配列を取得する
laravel5.7を使用している案件でCarbonPeriodをuseしたら**「Class ‘CarbonPeriod’ not found」**とエラー。バージョンによるものなのか、どうエラー解消するのか、パっと分からなかったので
プロジェクトの日付操作はCarbonで統一されてるみたいなので従来どおりCarbon使って期間の文字列配列生成しました。また同じ事が起きたとき用にテンプレとして書き残しとこーって
※逆期間非対応“`php
use Carbon/Carbon;
“`“`php
$startDateTime = new Carbon(‘2022-01-01’);
$endDateTime = new Carbon(‘2022-01-08’);$dates = [];
$diffDays = $startDateTime->diffInDays($endDateTime);
for ($i = 0; $i <= $diff
【Laravel】Requestで取得できる値の型を変換する必要性は?
#概要
本記事は、[PHPフレームワークLaravel入門 第2版](https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798060992/ref=pd_lpo_1?pd_rd_i=4798060992&psc=1)で学習している中の疑問・つまづきの備忘録です。今回はLaravelにおいてRequestで取得できる値の型を変換する必要性についての疑問をまとめます。
#今回の疑問
コントローラー内のアクションメソッドで引数として取得できるRequestに含まれるパラメータの型を変換する必要性があるのか、その理由は何か、疑問を持ちました。
詳細はサンプルコードにて記載します。#サンプルコード
このサンプルコードは[PHPフレームワークLaravel入門 第2版
PHPのバージョンが勝手に変更されてMongoDBにアクセスできなくなった話
# 症状
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459889/27c918fb-43a9-27d1-dc5a-7a6365cfb9ee.png)突然MongoDBへアクセスができなくなったしまった
PHPのドライバが対応していないっぽい# 解決
### PHPのバージョンを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459889/50e306d2-2548-e147-17bf-7b179ddee134.png)“`bash
$ php -v
PHP 8.0.12 (cli) (built: Oct 22 2021 12:34:00) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.12, Copyright (c) Zend Technologies
with Zend OPcache v8.
Mac(PC)にてバックスラッシュ(\)を入力する方法
#はじめに
こちらの投稿は、Apple社のデスクトップPC、iMacに付属されているキーボード「Magic Keyboard(JIS)」をお使いの方に向けてです。
***
#環境
・macOS バージョン11.6にて動作確認をしています。
***
#バックスラッシュの入力に仕方
macOSを付属のキーボード(JISキーボード)お使いの場合、バックスラッシュの入力の仕方は、
・キーボードの左下にある、「option」+右上にある「¥」#どういうときに使うか
・主にプログラミングを描くときに使います。
・PHPのエスケープシーケンスをするときに使います。
・一つのタグの中に、シングルクォーテーション(”)やダブルクォーテーション(“”)を複数個使うことは出来ないため、
“`“`
などと入力しようとするとエラーが出てしまうので、それを回避するために
“`“`と入力することでエラーを回避することができます。
myAssignとは
##こんなコードがあった!
“`php:sample.php
$menuAry = $this->getMenuForAPI();
myAssign(‘menuAry’,$menuAry); // Smartyにアサイン
“`##上から読んでみよう!
####◆$menuAry
変数名だね!####◆$this
Refers to current object
…よくわからん?わすれた。####◆->
…アロー演算子というらしい####◆getMenuForAPI()
とりあえずAPIだね!####◆myAssign
SmartyにAssignする
次画面持越し変数にセットする
…画面で使るようにするのか?##つまりどういうことだってばよ
・`getMenuAPI`の返却値を`$menuAry`に格納
・`$menuAry`の値を変数`menuAry`(Smartyとしての変数名の方)として定義を追加するなので…
Smartyとしての変数を定義したい場合に使う関数
ということかな?!
配列に値を追加する複数の方法
配列に値を追加するにはいくつかあるらしい。
あとでかく
$thisってなんぞ?
あとでかく
コメントアウトの@return voidってなんぞ
あとでしらべる
blastengineを使ってPHPでメールを送信する
[blastengine](https://blastengine.jp/)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。
今回はblastengineを使ってPHPでメール送信を行うまでの流れを解説します。
## ユーザ登録する
blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。
![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34-46d181ee2924.jpeg)
## 送信元ドメインのSPFを設定する
送信元として利用するドメイン(自分で持っているもの)の設定をします。これは任意のドメイン管理サービスで設定できますが、TXTレコードに以下のSPFを追加します。
“`
txt @ v=spf1 includ
1054 unknown column ‘email in ‘field list’はこれで解決した
#今やっていること
Laravel6を使って簡単な掲示板機能の作成中。
最初の新規登録でつまりました。##表示されたエラー
“`
SQLSTATE[42S22]: Column not found: 1054 Unknown column ‘email’ in ‘field list’
“`
このエラーの解決方法はいろんな記事で読みましたが、イマイチ解決できず。
新規登録の機能を実装しているRegisterControllerを見直してみました。##解決方法
“`php:RegisterController.php
public function register(Request $request){
if($request->isMethod(‘post’)){
$data = $request->input();
$validator = Validator::make($data,[
‘username’ => ‘required|max:30’,