やったこと

webサービスを作るときに考えたことを垂れ流します

ムームードメインで「管理者情報の町村/番地が不正です」って怒られる

ムームードメインの設定で「WHOIS情報の変更」をしようとすると「管理者情報の町村/番地が不正です」とエラーが出て怒られてしまいました・・。この原因はおそらく「個人設定 - ユーザー登録情報」の設定が間違ってるせいです。この項目の「お客様情報」の入…

【CakePHP3】サイトにrobots.txtを設置する!

CakePHP3のサイトに「robots.txt」を設置する方法です。やり方はめっちゃ簡単。「/webroot」のディレクトリ直下に「robots.txt」を作成して置いておくだけです。これでブラウザからあなたのサイト「http://hogegege/robots.txt」にアクセスすると、robots.tx…

【CakePHP3】ページタイトルの設定方法!

CakePHP3でページタイトルを設定する方法です!以下のようにするとページタイトルを出力できます。 //ビューやコントローラー内で指定 $this->set('title', 'Test Page Title!'); //レイアウトファイルなどでタイトル出力 <title><?= $title ?></title>ちょう簡単ですね・・…

【CakePHP3】ページネーション処理にキャッシュを効かせる!

CakePHP3の「ページネーション処理(Paginate機能)」の結果をキャッシュとして保存する方法です。以下のように「検索クエリ」作成時に検索結果をキャッシュ保存する旨を書き込んでおきます。 //クエリを作成 $query = $this->Tweets->find() ->where(['post_i…

Facebookページで個人名を表示させない(非公開)にする!

Facebookには「個人ページ」と「Facebookページ」という二種類のページがあります。 ・「個人ページ」とは、あなた個人がお友達などと交流するためのページです。 ・「Facebookページ」とは、企業などが宣伝・告知用とかに作るページです。 「Facebookページ…

【CakePHP3】エレメントのキャッシュが削除できない!

CakePHP3(ver3.1)で、エレメントの表示内容をキャッシュ(ファイルキャッシュ形式です)したのですが、うまく削除できません・・。例えば以下のように、エレメントの呼び出し時にキャッシュ保存をするとします(キーは「test_post270」) element('comment…

【CakePHP3】リファラー(アクセス元URL)を取得する!

CakePHP3では以下の方法でアクセス元のURLを取得できます(めっちゃかんたんですね) //アクセス元URL取得 $url = $this->referer(); //リダイレクトする場合はこう $this->redirect($url);以上!

【javascript】途中でvar変数宣言すると値がundefinedになってしまう!

javascriptを書いていてつまづいてしまいました・・。以下のような処理を書いたんです。グローバル変数「twitter_id」が存在しないときに、ローカル変数として同じ名前で変数を用意するという処理です(なんだか臭いコードですねこれは・・) if(typeof twit…

【CakPHP3】クリアしてもキャッシュが消えない!

CakPHP3のキャッシュ機能の話です。「app.php」に以下のような感じの設定をして、キャッシュをwriteコマンドで保存してみたんです(キャッシュファイルは「/tmp/cache/hogege/」に保存されます) 'Cache' => [ 'test' => [ 'className' => 'File', 'duration…

【CakePHP3】PCかモバイルか判定する方法!

CakePHP3でユーザーがPCかモバイルかを判定する方法です。お好きなコントローラー内で以下のようにして判定できます。超簡単ですね・・。 if($this->request->is('mobile')){ $this->viewBuilder()->layout('モバイル用レイアウト'); }else{ $this->viewBu…

【CakePHP3】Cellを使って画面表示する!

CakePHP3の「Cell機能」の使いかたです。「Cell」を使うとテーブルを呼び出したり、いろいろデータを加工できたりして、「Element」よりもリッチな画面表示ができます。以下手順です。①アクション部分を作成 「/View/Cell/Hogege/」というディレクトリを新し…

Twitter Bootstrapでボタン型のリンクを設置する!

「ツイッター・ブートストラップ」で、他ページへのリンクを「ボタン」を使って行う方法です。以下のように「<a>タグ」に「btnクラス」をセットすると、リンクがボタン状になります。 <a href="http://hogege.com" class="btn btn-default btn-sm" role="button">他のページに遷移!</a> ボタンを中央よせにしたい場合は、以下のように「<div class="text-center">」で囲</div></a>…

【CakePHP3】独自のエラーログを出力するコンポーネントを作成!

CakePHP3で、自分専用のファイルにログを出力するコンポーネントを作ってみました。 以下、その手順です。①「app.php」を修正! 「app.php」に新しく「myerr」というオリジナルログを追加します。 'Log' => [ 'debug' => [ 'className' => 'Cake\Log\Engine\…

【cakePHP3】例外発生時にテンプレートに変数を渡す!

CakePHP3の話なんですが、コントローラー内で例外処理を発生させると「error400.ctp」や「error500.ctp」といったテンプレートファイルが呼ばれてエラー画面が表示されますよね。あのテンプレートに変数を渡す方法です。以下のように[]の中に変数を記述する…

【CakePHP3】コントローラー内でURLやドメインを取得する!

CakePHP3のControllerの中で、ドメインやURLを取得する方法です。以下「http://hogege.com/testpage/」というページ内で処理を行った例です。 use Cake\Routing\Router; class TestpageController extends AppController { public function display() { /…

TwitterBoostrapで「center-block」が効かない!

cssライブラリの「ツイッター・ブートストラップ」の話ですが、ブロック要素を真ん中に寄せる「center-block」ってありますよね。あれをセットしても全然中央寄せにならなくて困っていたのですが、理由が判明しました・・。真ん中に寄せたい要素のcssに「mar…

sqlite3のvacuumの仕方!

sqlite3のvacuumの方法はいたってシンプルです。以下のようにプロンプトでvacuumコマンドを実行すると「hogege.db」の余分な領域がバキュームされます。 sqlite3 hogege.db vacuum以上

【CakePHP3】エンティティから「テーブル名」をゲットする!

CakePHP3では、テーブルに格納するデータは「entity」というオブジェクトで表されます。この「entity」から「テーブル名」を取得するには「source()」メソッドを使います。例えば、以下のようにすると「$table_name」にテーブル名「Authors」の文字列がゲッ…

【jquery】画像が表示エラーとなったときに代わりの画像を表示する!

「img要素」で画像を表示しようとしたら、画像がすでになくなってきて「×」マークが表示されてしまう、こんなことってありますよね。こういうときに、自前で用意した「NOT FOUND!」みたいな画像とすり替えて表示できたら、とっても便利です。jqueryで以下の…

box-shadowを使うと内側の要素のmarginが効かなくなる!

cssの「box-shadow」を使ってdiv要素に影を付けてみたんです。↓こんな感じのcss設定です。 .test-div { width: 100px; height: 100px; box-shadow: 0 2px #ff0000; }この「test-div」の中に「p要素」で文章を書いて、p要素を「margin-top」で高さを調整しよ…

word-breakの折り返しがひどい件!

cssの「word-break: break-all;」を使って文章を折り返したかったのですが、一部のケースで折り返しをうまくやってくれないみたいです・・。例えば以下のようなhtmlを記述します。 <div class="test_div"> <p class="test_p">ワロタwwwwwwwwwwwwwww!!!!!!!!!!!!!!!</p> </div> そ…

【CakePHP3】テーブルの中の全データを削除する!

CakePHP3でModelの中の全レコードを削除する方法です。以下のようにDeleteAllに全マッチする条件(idが0以上)を指定してあげると、「TableHogege」の中の全レコードが削除されます。 //全レコード削除 $this->TableHogege = TableRegistry::get('TableHogeg…

【CakePHP3】Shellの中でデバッグログを出力する!

CakePHP3のシェルの処理の中で、デバッグログを書き出す方法です。普通に以下のように「$This->log()」を使って出力できます。 class TestShell extends Shell { public function testes(){ $this->log("test dayo", "debug"); } }シェル実行コマンド「/bin/…

【CakePHP3】containでデータ取得しようとしたらエラーになってしまった!

CakePHP3の話ですけども、テーブルからデータを取得するとき「contain」によって別テーブルからもデータを取得できますよね。以下のコードでは「DraftPosts」テーブルと「Posts」テーブルから同時にデータをゲットしています。 public function initialize()…

【CakePHP3】クッキーが書きこめるけど読み込めない!

CakePHP3でCookieの「書き込み」はできるのに「読み込み」はできない困った事態に出くわしてしまいました。この原因は簡単なことでした。Cookieの書き込み時は「$this->Cookie->config()」で設定をセットしていたんですが、読み込みのときにこれを忘れていた…

【CakePHP3】異なるテーブル間でデータをコピーする!

CakePHP3で、あるテーブルのデータを別のテーブルにコピーする形でセーブする方法です。以下、「Draft_posts」テーブルのデータを「Posts」テーブルにコピーしています。 (※この二つのテーブルは全く同じ構造をしています) try{ //コピー元のデータを取得 …

GETメッセージのクエリパラメータのフォーマット!

HTTPのGETメッセージの後ろには、下記のように「?」や「&」でいろんなクエリパラメータを付けられます。「http://hogege.jp/param.php?age=100」(パラメータ一個だけの場合) 「http://hogege.jp/param.php?age=100&weight=120&height=200」(パラメータ3…

【CakePHP3】コントローラーからテンプレートに変数を渡せないとき!

CakePHP3でコントローラーからテンプレートへ「$this->set()」で変数を渡そうとしたのですが、なぜか失敗してしまいました・・。原因は「$this->render('xxxx')」でした。変数をセットする前にレンダーを指定すると、その後変数がセット不能になってしまうみ…

【CakePHP3】絵文字をSQLに保存する方法!

CakePHP3で絵文字が入ったテキストをMySQLに保存しようとしたら、以下のようなエラーが発生してしまいました。 General error: 1366 Incorrect string value:・・・これは文字コードが原因だそうです。絵文字は「utf8mb4」という文字コードじゃないと保存で…

MySQLのログインコマンド

久しぶりにMySQLにログインしようとしたらコマンドが分からなくなっちゃった・・。以下、ユーザ名「root」、パスワード「hogehogehoge」でログインするときのコマンド。 「mysql -u root -phogehogehoge」おそろしいことに、こんなコマンドが検索でなかなか…