あっ、普通の update というのは、WHERE 区に自由な条件をつける、という意味です。今回、CakePHP2 にて次のことをやってみたのでメモします。
- 好きな条件でテーブルを更新する。
- あるカラムの値をインクリメントしたい。
- updateAll だと modifiedを自動で更新してくれないのをなんとかする。
Linux の悪戦苦闘記、プログラミング、WordPress、ウェブサービス、Windows、Mac などの話題ですの。
あっ、普通の update というのは、WHERE 区に自由な条件をつける、という意味です。今回、CakePHP2 にて次のことをやってみたのでメモします。
app/Config/core.php の prefix routes 部分に次のように書き、
Configure::write('Routing.prefixes', array('admins', 'editors', 'authors'));
app/Controller/UsersController.php で admins_login() のようなアクションを書くことで、
にアクセスすると admins_login() アクションを実行するようにできます。プレフィックスルーティングですね。
上記の例の場合、 editors と authors も設定しているので、http;//example.com/editors/users/login/ や http;//example.com/editors/authors/login/ で editors_login() や authors_login() を実行できます。
さてここで、admins には特定の IP アドレス以外からアクセスさせたくない!となったら、どうしたらよいでしょうか?やってみた記録をメモします。
https://oki2a24.com/test/ 配下のページにアクセスしたときに Basic 認証を求めるサンプルです。サーバ上のディレクトリは次になります。
ユーザ名、パスワードは、次のようにします。
ACLを制御するシンプルなアプリケーション – CakePHP Cookbook v2.x documentation のグループだけのACL に書かれている関数を User モデルに追加すると、ユーザー単位ではなく、グループ単位の ACL とできる、とあります。
しかし、この関数をつけてもつけなくても「 aros テーブルは以下のようになるでしょう」とあるようなテーブル構造になりません。ナンデ?ウェブからユーザーを登録しても、aros テーブルにデータが登録されてしまいます。ナンデ?
そこで、この状態ですこしだけ検証してみましたのでメモします。
ウェブページのリンクをクリックしてメーラーを起動、送信する方法をメモします。
<a href="mailto:mailto@example.com?subject=ここが件名&body=ここに本文">メールへのリンク</a>
以前 CakePHP2 でラジオボタンを作ったときに、ボタンをクリックしたら onclick に書いた関数を起動するようにしたかったときがありました。地味に躓いたので、ポイントをメモしておきます。
CakePHP2 で JavaScript を使いたいですが、いまさらながら初めてのことでしたので
の二つをメモします。
FormHelper::input の ‘type’ => ‘date’ を使うと一発で「年月日」のセレクトフォームを作れて幸せな気持ちになります。しかし!しかしはまりました。
年と月と、月と日の間に入れる文字列を自由にできないのです!そこで、不完全ながら何とかした記録を残しておきます。
誕生日<?php echo $this->Form->datetime('User.birth_date', 'Y', null, array('minYear' => 1980,'empty' => '----','orderYear' => 'asc'));?>年 <?php echo $this->Form->datetime('User.birth_date', 'M', null, array('monthNames' => false,'empty' => '--'));?>月 <?php echo $this->Form->datetime('User.birth_date', 'D', null, array('empty' => '--'));?>日 <?php if ($this->Form->isFieldError('User.birth_date')) { echo $this->Form->error('User.birth_date'); } ?>
ウェブサービスを利用しているとプロフィールページががあって、メールアドレスや、住所とか、変更できるようになっています。これを CakePHP2 で作るにはどうしたらよいか?なにが問題となったか?ポイントか?メモ程度ですが残しておきます。
/var/www/html にあるディレクトリ配下のファイルに 対してapache ユーザ、apache グループがいろいろできるよう、パーミッションを設定しています。
root ユーザならもちろん何でもできるのですが、このたび管理者以外のほかのユーザでもいろいろできるようにしてみようと思います。
・・・結論から言えば、うまくいかなかったのですけれども残しておきます。
[root@oki2a24 tmp]# # oki2a24 ユーザを apache グループに追加する [root@oki2a24 tmp]# gpasswd -a oki2a24 apache