ラベル CakePHP の投稿を表示しています。 すべての投稿を表示
ラベル CakePHP の投稿を表示しています。 すべての投稿を表示

2010/06/16

CakePHPでSmartyを使う設定にてハマった。際のメモ

 CakePHPにはSmartyViewというものが公開されていて、
ビューをthtmlでもctpでもなく、うまいことSmartyが使えるようになる。

そんな感じで設定をしていたら

function call 'assign_by_ref' is unknown or deprecated.

なんだこれ( ゚Д゚)y─┛~~

と思いつつググったら出た出た。
http://www.smarty.net/forums/viewtopic.php?p=64427

It's now assignByRef.

要するに現在のバージョンは、assign_by_refという名前ではなく、
assignByRefですよってことらしい。

どうやらSmarty3.0で変わったらしい。
なので、Smarty2.6.25以前を使えばこの件に関しては解決できます!

2010/05/26

CakePHPで自動レンダリングをオフにする

CakePHPはデフォルトで自動レンダリングがオンになってる。
なので、アクションが呼ばれると自動で「アクション名.ctp」が
呼ばれる。この機能がウザいときはオフにしましょ。

class CustomersController extends AppController {
// falseにすると自動レンダリングがOFFになる
var $autoRender = false;
}

2010/05/22

CakePHPで半角英数字以外を削除する

半角英数字以外を削除したい場合は多い。
今回はCakePHPでの手法を紹介。

▼半角英数字と半角スペース以外を削除する(!!が消える)
$text = "CakePHP is PHP's Framework!!";
$text = Sanitaize::paranoid($text, array(" "));

▼処理後の$textの中身
CakePHP is PHP's Framework

2010/05/18

CakePHPでリダイレクトする

CakePHPリダイレクトするにゃー、以下のようにするです。

$this->redirect("/customers/index");

2010/05/17

CakePHPでSQLコマンドを実行する

CakePHPには簡略化されたO/Rマッッパーを持ってるけど、
自分でサクッとSQLを実行したいときがある。
以下で行えます。

$this->Customer->execute("TRUNCATE customers");

2010/05/15

CakePHPでテーブルの作成日時、更新日時を自動的に更新させる

CakePHPは、ある規則に従ってテーブルを作ると、
テーブル作成日時更新日時自動的更新してくれます。

以下、手自動更新のためのテーブル作成規則。
  1. カラム名:データ挿入日時はcreated、修正日時はmodified または updated
  2. 型:datetime
  3. NULL:許可
  4. デフォルト値:空文字
これさえ守れば、いちいちupdateする際に更新日時を気にする
必要がなくなります。小さいことですが、さりげなくありがたい
(*゚∀゚)=3ハァハァ


CakePHPのsaveメソッドの戻り値

saveメソッドの戻り値について。
成功したらtrue、失敗したらfalseを返す。


のではなく…
  • 成功したら、modelにセットしたデータを返す
  • 失敗したら、falseを返す
  • modelにセットしたデータが正しい形でないときtrueを返す
割とトリッキーなメソッドですよネ。
戻り値は成功・失敗の2値(true or false)にして、
成功した場合、第2引数にtrueが渡されたら
modelにセットしたデータを返す仕様の方がわかりやすいのでは…
(・ω・`)