2016-01-01から1年間の記事一覧
CakePHP3では、テーブルに格納するデータは「entity」というオブジェクトで表されます。この「entity」から「テーブル名」を取得するには「source()」メソッドを使います。例えば、以下のようにすると「$table_name」にテーブル名「Authors」の文字列がゲッ…
「img要素」で画像を表示しようとしたら、画像がすでになくなってきて「×」マークが表示されてしまう、こんなことってありますよね。こういうときに、自前で用意した「NOT FOUND!」みたいな画像とすり替えて表示できたら、とっても便利です。jqueryで以下の…
cssの「box-shadow」を使ってdiv要素に影を付けてみたんです。↓こんな感じのcss設定です。 .test-div { width: 100px; height: 100px; box-shadow: 0 2px #ff0000; }この「test-div」の中に「p要素」で文章を書いて、p要素を「margin-top」で高さを調整しよ…
cssの「word-break: break-all;」を使って文章を折り返したかったのですが、一部のケースで折り返しをうまくやってくれないみたいです・・。例えば以下のようなhtmlを記述します。 <div class="test_div"> <p class="test_p">ワロタwwwwwwwwwwwwwww!!!!!!!!!!!!!!!</p> </div> そ…
CakePHP3でModelの中の全レコードを削除する方法です。以下のようにDeleteAllに全マッチする条件(idが0以上)を指定してあげると、「TableHogege」の中の全レコードが削除されます。 //全レコード削除 $this->TableHogege = TableRegistry::get('TableHogeg…
CakePHP3のシェルの処理の中で、デバッグログを書き出す方法です。普通に以下のように「$This->log()」を使って出力できます。 class TestShell extends Shell { public function testes(){ $this->log("test dayo", "debug"); } }シェル実行コマンド「/bin/…
CakePHP3の話ですけども、テーブルからデータを取得するとき「contain」によって別テーブルからもデータを取得できますよね。以下のコードでは「DraftPosts」テーブルと「Posts」テーブルから同時にデータをゲットしています。 public function initialize()…
CakePHP3でCookieの「書き込み」はできるのに「読み込み」はできない困った事態に出くわしてしまいました。この原因は簡単なことでした。Cookieの書き込み時は「$this->Cookie->config()」で設定をセットしていたんですが、読み込みのときにこれを忘れていた…
CakePHP3で、あるテーブルのデータを別のテーブルにコピーする形でセーブする方法です。以下、「Draft_posts」テーブルのデータを「Posts」テーブルにコピーしています。 (※この二つのテーブルは全く同じ構造をしています) try{ //コピー元のデータを取得 …
HTTPのGETメッセージの後ろには、下記のように「?」や「&」でいろんなクエリパラメータを付けられます。「http://hogege.jp/param.php?age=100」(パラメータ一個だけの場合) 「http://hogege.jp/param.php?age=100&weight=120&height=200」(パラメータ3…
CakePHP3でコントローラーからテンプレートへ「$this->set()」で変数を渡そうとしたのですが、なぜか失敗してしまいました・・。原因は「$this->render('xxxx')」でした。変数をセットする前にレンダーを指定すると、その後変数がセット不能になってしまうみ…
CakePHP3で絵文字が入ったテキストをMySQLに保存しようとしたら、以下のようなエラーが発生してしまいました。 General error: 1366 Incorrect string value:・・・これは文字コードが原因だそうです。絵文字は「utf8mb4」という文字コードじゃないと保存で…
久しぶりにMySQLにログインしようとしたらコマンドが分からなくなっちゃった・・。以下、ユーザ名「root」、パスワード「hogehogehoge」でログインするときのコマンド。 「mysql -u root -phogehogehoge」おそろしいことに、こんなコマンドが検索でなかなか…
CakePHP3に「Paginate処理」ってありますよね?たくさん記事を表示するときに、URLに「?page=1」「?page=2」みたいのを付けて、自動でページをうまく分割表示してくれる機能です。(公式ページ:「ページネーション」)ページネーション機能で記事が存在しな…
CakePHP3でデータを暗号化してテーブル(Model)に保存する方法です。以下の「encr()」でデータを暗号化して保存しています。「decr()」ではデータを復号化して表示しています。 use Cake\Utility\Security; use Cake\Core\Configure; class SaveController ex…
テーブル(Model)にデータを保存するときハッシュ化したいときってありますよね?パスワード情報とかに関する人にバレたらまずいデータです。CakePHP3では「エンティティクラス」にハッシュ化処理を書き込むと、保存するときに自動的にハッシュ化してくれま…
CakePHP3の画面レイアウト処理で「エレメント」の機能を使うと便利です。エレメントとは、画面デザインのパーツを再利用できるように定義できる機能です。例えば「display.ctp」で以下のような画面レイアウトを記述していたとします。 <div class="masthead"> <p>ヘッダーだよ!(;)</p> </div>
CakePHP3でAuthコンポーネントを使う際に困ってしまいました。トップページでユーザーがログインしているかどうか確認する処理を書いていたのですが、なぜかトップページへアクセスするとログインページに自動的に遷移してしまうのです・・。原因は「$this->…
CakePHP3の「Tableクラス」の処理の中で、デバッグログを出力したいときってありますよね。「Controllerクラス」の中では、以下のような呼び出しでログを出力することができました。 ("/logs/debug.log"にログが書かれます) $this->log("hogege testes", "d…
CakePHP3で「Users」という名前のModelを生成するコマンドですCakephpのディレクトリで以下のコマンドを実行 「./bin/cake bake model Users」これで「/Model/Entity/」や「/Model/Tabble/」にUsersテーブルに関連するファイルが生成されます以上
今朝ちょっと不思議なことが起きたので、ブログに書いておきます。朝の7時頃に私のスマホにGoogleからメールが届いたんです。そこには「他のユーザーがあなたのパスワードを使用しました」というタイトルで、不正ログインをブロックした旨が書いてありました…
ワードプレスのプラグインで「SiteGuard」というのがあります。 これを使うとWPのログイン時に使ういろんなセキュリティ機能を追加することができます。このプラグインの設定で「ログインロック機能」というのがあります。ログイン失敗したIPアドレスを一定…
CakePHP3のRouting設定でずいぶんつまづいてしまいました・・。例えば以下のようなURLでサイトにアクセスするとしますよね。 http://hogege.com/edit/hoge123/hoge456このときコントローラー側のdisplayアクションに以下のような引数が渡されるようにしたか…
CakePHP3には「Pagination機能」というのがありますよね。「前へ」とか「次へ」みたいなボタンを配置して、違うページに遷移する処理を簡単に作れる機能です。 (参考ページ)http://book.cakephp.org/3.0/ja/controllers/components/pagination.htmlあの遷…
jquery ajaxでjsonのデータを送信しようとしたのですが、データがサーバ側へ届きませんでした(サーバ側で受信すると空になってる)。この原因ですが、送ろうとしているデータが「object型」ではなくて「array型(連想配列)」だったせいみたいです。以下のよ…
Javascriptで配列をオブジェクトに変換する方法です。以下のようにして配列「arr」をobject「obj」に変換できます。 var arr = new Array(); arr["aaa"] = 111; arr["bbb"] = 222; arr["ccc"] = 333; //オブジェクトに変換! var obj = {}; for(key in arr){…
ブートストラップのRadioボタンを最初からチェック済みにする方法です。 <div class="radio"> <label class="radio-inline"> <input type="radio" name="is_publish" id="check_publish" value="yes"checked> 公開 </label> <label class="radio-inline"> <input type="radio" name="is_publish" id="check_unpublish" value="no"> 非公開 </label> </div>こんな風に「…
CakePHP3で、主キー(Primary Key)を指定してデータを保存しようとしたのですが、「Field 'hogehoge_id' doesn't have a default value」とエラーが出て保存失敗してしまいました・・。コードは以下のようなもの。 $tweet_info->hogege_id = 100; //主キー…
CakePHP3に「existsIn」チェックってありますよね。Modelでデータを変更するときに走るチェック処理です。テーブル設定ファイルの「buildRules」のとこに書いてありますよね。私このチェックの意味を勘違いしていました。これはテーブルの構造(フィールドの…
ツイッターにアンケート機能ってありますよね。つぶやきの中でフォロワーの人達に投票を呼びかけることが出来る機能です。あのアンケート内容ですが、今のところAPIで取得することはできません。通常、つぶやき中の「画像」や「動画」といったメディア情報は…