CakePHPでコントローラーより前にユーザーネームなどを動的に入れたいときのルーティング方法

domain.com/username/controller/action
のようなルーティングをやりたいときの方法。

なおCakePHPにはプレフィックスルーティングという方法がありますがプレフィックスを事前に決めておかないといけないので動的に設定したい場合に困る。

qiita.com

方法は特に難しいことはなく、routes.phpにルーティングの設定を書けば良い。

Router::connect(
    '/:username/:controller/:action/*',
    array('username' => '[a-z]+')
);

usernameは正規表現で好きなように定義できます。

アクセス方法

任意のコントローラーで

pr($this->params['username']);

てな感じで取れます。

CakePHPのフォームで確認アラートを出す方法メモ(CakePHP2.x版)

3年前に書いた記事はCakePHP1.3だったので今更ながら2.xようの書き方を。

masusugu.hatenablog.com

<?php 
    echo $this->Form->submit('Delete', 
        array(
            'url' => '/users/delete', 
            'id' => 'Delete',
            'onClick'=>'return confirm("OK?");'
        )
    ); 
?>

リモートサーバー上のファイルをローカルのSublime Textで編集する

普段はSublime Textで作業しているけどsshでリモートサーバーにログインしてサーバー設定するときはvimを使うというような人はたくさんいるかと思います。

ちょっとした設定くらいならvimでもいいんだけど書く量が多い場合はSublime Textで書きたいと思う人もいるんじゃないでしょうか。 rsubなんですが、rsubをサーバーにインストールするとリモートサーバー上のファイルをSTで編集できるようになっちゃいます。

もともとはTextMate2にあるrmateという機能でSSHトンネルを作ることでこの機能を実現してます。 これをSublime Text用にしたものがrsubです。Sublime Text 2, Sublime Text 3どちらでも動きます。

導入方法 Ctrl+Shift+Pでコマンドパレット開いてInstall Packageでrsubを選んでインストールしてください。ST側はこれだけ。 続いてsshの設定。

sshのconfigファイルを書きます。

~/.ssh/config

Host hogehoge
    HostName xxx.xxx.xxx.xxx
    User hoge
    identityfile ~/.ssh/User/id_rsa
    RemoteForward 52698 127.0.0.1:52698

サーバーにSSHログイン

ssh hogehoge

rsubをインストール

sudo wget -O /usr/local/bin/rsub https://raw.github.com/aurora/rmate/master/rmate
sudo chmod +x /usr/local/bin/rsub

あとはrsubコマンドでファイルを開くとSublime Textが立ち上がります。

sudo rsub ~/PATH/TO/FILE/hoge.txt

sudo実行時にcommand not foundとか怒られたら$PATH通ってないので通しましょう。

sudo visudo
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/local/bin:/usr/bin

これで動きました。

ST側でsaveするとちゃんと反映されます。

[参考サイト]

Sublime Tunnel of Love: How to Edit Remote Files With Sublime Text via an SSH Tunnel | Limina.Log

rmateをサーバーにインストールしてリモートのファイルをTextMate2で編集する方法 - memo.yomukaku.net

Azureで価格帯A0でVM作った時にMySQLが起動しない問題

socketファイルとかパーミッションとか見て設定したけどだめ。

原因はこの記事と完全に同じ問題でメモリ不足。

Amazon EC2 の t1.microインスタンスでMySQLがよく落ちる – blog.hereticsintheworld

freeコマンドでSwapがなかったらSwap領域作りましょう。

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

sudo mkswap /swapfile

sudo swapon /swapfile

最後にfreeコマンドでSwap領域が増えてることを確認できたらおk

CakePHPのフォームで確認アラートを出す方法メモ

<?php echo $form->create('Delete', array('url' => '/users/delete', 'id' => 'Delete','onsubmit'=>'return confirm("本当に削除してもいいですか?");')) ?>

太字の部分を書き足すだけ。簡単

CakePHPのフォームで郵便番号から住所の自動補完機能実装でつまずいたのでメモ

最初に試したのはajaxzip2

【配布元】http://www.kawa.net/works/ajax/ajaxzip2/ajaxzip2.html

CakePHPだと少し修正が必要とのことで以下の記事を参照した。

【参考記事】http://d.hatena.ne.jp/cakephper/20100216/1266293151

普通に動いた!

と思ったら動いたり動かなかったりと不安定。

他のjqueryプラグインとバッティングしてるのか。

他の自動補完プログラム入れようとしたけどajaxzip2の動きが一番好きだったので諦めきれない。

色々調べているとajaxzip3なるものがあるじゃないか!

【コレ】http://code.google.com/p/ajaxzip3/

こいつかなり強力。設置めちゃ簡単。CakePHPとか気にする必要全くなし。

ヘッダーでスクリプト読み込んで、

 

<scriptsrc="http://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3.js"charset="UTF-8"></script>
フォーム書くだけ。
<inputtype="text"name="zip01"size="10"maxlength="8"onKeyUp="AjaxZip3.zip2addr(this,'','pref01','addr01');">
<inputtype="text"name="pref01"size="20">
<inputtype="text"name="addr01"size="60">
ありがとうajaxzip3