9月
26
2009
0

[Eclipse]同じファイルを分割表示
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

皆さん当たり前にやってることかもしれませんが、僕はずーっとできないと思ってました…orz

Eclipseで同じファイルを分割して表示する方法。

  1. タブを右クリック->新規エディタ で新しいタブに同じファイルが表示されます(たったこれだけw)
  2. あとは新しく作られたタブを画面の端っこにドラッグして分割できます
Written by suzukenn in: メモ | タグ: ,
9月
26
2009
0

[PHP][メモ]post_max_sizeを超えるアップロード時のエラー処理
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

post_max_sizeを超えたファイルをアップロードすると、
「Warning: POST Content-Length of …」というエラーが出てPOSTする内容が消えてしまいますよね。

どうやってエラー処理をしようか悩んでいたら、
以下の参考記事を発見。

参考

PDFファイルをサーバーにアップし、 そのPDFファイルをダウンロードする際、 ブラウザにPDFファイルが開くことなく、 ダイアログが出るように設定するようにしたいと考えて.. – 人力検索はてな
PHPを使ったファイルアップロードで php.ini の制限越えた場合にはどのように処理されるのでしょうか? 越えると単に $_POST を array() に設定して、データおくらないで.. – 人力検索はてな

対策

post_max_sizeに失敗した場合には$_POSTがarray()で返り、$_SERVER["REQUEST_METHOD"]が”POST”で返ることを利用して、

			if (empty($_POST) && $_SERVER["REQUEST_METHOD"] === "POST") {
				// エラー処理
			}

で対応しました。
※upload_max_filesizeの制限に引っかかった場合は挙動が違うらしいので注意してください。
詳しくはこちら

Written by suzukenn in: メモ | タグ:
9月
12
2009
0

[CakePHP]paginateでbindModel
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

これはみんなは知ってることなんだろうなぁと思いつつPOST。
僕は少々気付くのに時間がかかりました。

問題

paginateでbindModelしてもうまくいきません (><)

回答

paginateでbindModelを使うときはbindModelの引数にfalseを渡しましょう

		$this->Model->bindModel($bind, false);
		$this->paginate = array(
			"Model" => array(
				"conditions" => $conditions,
				"limit" => 30,
				"order" => array("Model.created" => "ASC"),
			),
		);
		$lists = $this->paginate("Model");

解説

bindModelの第2引数はクエリを投げた後にbindをリセットするかどうかのフラグで、デフォルトはtrueになっています。
paginateでデータを取得する場合、最初にデータ数をカウントするクエリを投げるので*1 カウントではbindされているのですが、2度目のデータ取得ではbindが外れてしまうことが原因でした。
bindModelの第2引数にfalseを渡すと、その処理においてはbindの設定が持続しますのでカウントした後のデータ取得でもちゃんとアソシエーションが維持されると言うわけです。

  1. データ数/limitでページ数を算出したりするためでしょう。 []
Written by suzukenn in: メモ | タグ: ,

| I have been indebted to Aeros Theme. | Background image owner is NASA.