EC-CUBE2の規格登録でエラー

EC-CUBEの規格登録をしようとしたら下記のエラーが出た件

*—————————————————————*
SQL: [INSERT INTO dtb_classcategory(name,class_id,creator_id,rank,create_date,update_date,classcategory_id)
SELECT $1,$2,$3,$4,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,$5]
PlaceHolder: [array (
0 => ‘テストデータ’,
1 => ’92’,
2 => ‘2’,
3 => 3,
4 => 96,
)]
MDB2 Error: unknown error
_doQuery: [Error message: Could not execute statement]
[Last executed query: EXECUTE mdb2_statement_pgsql_2977d07f3499f15f5f700e51693c3dfbbe8b622f1d (‘テストデータ’, ’92’, ‘2’, 3, 96)]
[Native message: ERROR: 重複キーが一意性制約”dtb_classcategory_pkey”に違反しています
DETAIL: キー (classcategory_id)=(96) はすでに存在します]
*—————————————————————*

EC-CUBE 2.x
PostgreSQL

classcategory_idがかぶっているよというエラーです。

PostgreSQLで状況を確認します。(phpPgAdmin)

まずはシーケンスの状況を確認します。

select * from dtb_classcategory_classcategory_id_seq;

last_valueの値がclasscategory_idの最後の値です。
これが96になっています。

classcategory_idのMAXの値を調べます。

SELECT MAX(classcategory_id) FROM dtb_classcategory;

240と値が返ってきました。

last_valueの値を変える必要があります。

select setval('dtb_classcategory_classcategory_id_seq',241);

下記のエラーが出ました。

「リードオンリーのトランザクションでは setval() を実行できません」

phpPgAdminでは実行ができないようなので、SSHでサーバーに繋げて直接PostgreSQLから実行します。

# select setval('dtb_classcategory_classcategory_id_seq',241);

最後に規格登録の動作確認をして登録できればOKです。

JavaScriptで日付の取得

JSでの日付の取得など備忘録

var now = new Date();// 現在の日時を取得

結果:Date 2018-07-14T08:00:35.771Z

このままだと使いづらいので下記のように個別で取得します。

var y = now.getFullYear();// 年を取得
var m = now.getMonth() + 1;// 月を取得(1月は0になるため+1する)
var d = now.getDate();// 日を取得
var h = now.getHours();// 時間を取得
var mi = now.getMinutes();// 分を取得
var s = now.getSeconds();// 秒を取得

ifなどで判定する場合はちょっと注意
数値型なので+すると足し算をしてしまうので、文字列に変換(toString())してから結合させる

if(y.toString()+m.toString()+d.toString() === "20180714"){
	// 処理をゴニョゴニョ
}

CakePHP2.xでデバッグキットを使う

CakePHP2.xでデバッグキットを使いたい~

デバッグキットをダウンロードします。

https://github.com/cakephp/debug_kit/tree/2.2

ダウンロードファイルを解凍したら「DebugKit」に名前を変更して、
cakephpのpluginsフォルダに移動させます。

bootstrap.phpに下記を追加


CakePlugin::load('DebugKit');

次に/app/Controller/AppController.phpに下記を追加

public $components = array('DebugKit.Toolbar');

/app/View/Layouts/default.ctp の sql_dump 部分を削除

<?php echo $this->element('sql_dump'); ?>

以上です。

XAMPPでWordPress導入時のhtaccess

XAMPPにWordPressを導入したけど、TOPページ以外にアクセスするとTOPに飛ばされてしまう場合の対処方法

htaccessのRewriteEngineの設定を正しく行うと解消されます。

例えば下記のURLだとすると…
http://localhost/wordpress/

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

RewriteBase
RewriteRule

上記2箇所の設定を調整する。

以上です。