Archives by date

You are browsing the site archives by date.

【CakePHP3】Migrationsプラグインを道入する。

bakeも問題無く動作するしいよいよCake3も熱くなってきたね。モデル周り以外は2系とそんなに使い方に差異はないかも。session周りが若干変わったくらい?

インストール手順

  • まずはcomposer.jsonに下記を追記
  • したらupdate
  • 最後にプラグインをロード

まぁ読み込めればどこでもいいんだけどbootstrap.phpあたりで読み込むのがベターかと。

使い方

cliからbin/cake migrationsで呼び出せる。

  • まずは初期化

これをすると一番はじめのマイグレーションファイルが生成されて、DBにも履歴管理用のテーブルが生成される。
この生成されたファイルのup()メソッドにアップグレード用のSQLを記述。
down()メソッドにダウングレード用のメソッドを記述する。

※Symfony2のようなDBの差分自動算出機能はない模様。(これはマジで不便)

なので下記のように自分で書いてやる。
※SQLは適当なので注意。

down()メソッドに差し戻し用のSQLも書いてやったら、migrateを実行。

差し戻したければrollback

とりあえずこれだけ知ってれば使えるはず。
あとは公式を参照されたし。

https://github.com/cakephp/migrations

【MySQL】指定した以外のテーブルをdumpする。

mysqldumpコマンドを使う際、--ignore-tableオプションを用いると、dumpしたくないテーブルを指定することが出来る。

例)

と言った感じ。
複数テーブルを除外したければ--ignore-tableオプションを複数回書いてあげればいい。

例)

※この際テーブル名にデータベース名のプレフィックスを付けてやらないとダメなので注意されたし。

【CakePHP2.X】トランザクションを実行する。

トランザクションとは

例えばSQLが複数回発行される場面で、それらが全て成功したか、全て失敗したかのどちらかを保証してくれるシステム。

使ってみる

トランザクションを実行するためにはテーブルの種類がトランザクションをサポートしている必要があるので注意。

まずはモデル内でデータソースオブジェクトを取得する。

後はこんな感じで使う。

トランザクションをネスト化さたりも出来るみたいなので詳しくは公式を参照されたし。

http://book.cakephp.org/2.0/ja/models/transactions.html

【AngularJS】「WARNING Tried to Load Angular More Than Once」エラー。

ui-router利用時、WARNING: Tried to Load Angular More Than Onceというエラーが出てビューの表示がなんだかおかしくなった。

これは指定しているルーティングに対するテンプレートが存在しないため再帰的にデフォルトルーティングを読みに行ってしまっているために発生するエラーで、しっかりと対応するビューファイルを用意してやったら治った。

【AngularJS】$cookieStoreでcookieを扱う。

$cookieStoreとは

  • angularでcookieを扱うためのサービス。

Angular標準のngCookiesモジュールを読み込むことで利用可能。
単純にキーとバリューの保存庫のような感じなので使い方はめちゃくちゃ簡単。

使い方

  • 利用したいモジュールに$cookieStoreを注入する。

値を取得する。

値を保存する。

値を削除する。

【Javascript】でUUIDを発行する。

便利な関数をStackさんで見つけたのでペタリ。

使い方はこう。

http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript

【MySQL】group_concatした結果が文字化けしたりBLOBと言った形で表示されてしまう場合。

主にPHPMyAdminでの話。

group_concatの部分をこうしてやればいい。

【MySQL】Groupしたカラムを条件に指定する。

group by句でグルーピングしたレコードに対して条件を指定したい場合はwhereではなくhavingを用いる。

例)

と言った感じ。