cakephp使用ノート

2770 ワード

1、cakephp、1つのcontrollerの中で複数のmodelを使うことができて、$usesで宣言します
public $uses = array("Question", "Answer");
modelの命名はアルパカ式に従い、viewのように下線で区切られていない.
2、modelはデフォルトで配列を返し、次のコードを使用してオブジェクトに変換します.
public $actsAs = array('Bean');
変換を行うには、対応するbeanオブジェクトが必要です.
クラスをコピーするときは必ずクラス名を変更してください.zend studioはeclipseのようにクラス名エラーを提示しません.
3、php接合html
<?php 
	foreach($message as $key => $value){
		echo '<li>
			<p class="p1">'.$value['name'].'<a href="#">'.(isset($value['city'])?$value['city']:"").'</a></p>
			<p>'.$value['amount'].(isset($value['active'])?'('.$value['active'].')':"").'</p>
			<p>'.$value['msg'].'</p>
		</li>';
	}
?>

4、ファイルに内容を印刷することで、リモートデバッグコード
ob_start();
echo '<pre>';
print_r($content);
$txt = ob_get_contents();
ob_end_clean();
$fp = fopen('/home/she/weixin.txt', 'a+');
fwrite($fp, $txt);
fclose($fp);

5、controllerがmodelを引用する問題
WechatsController  Model Wechat, controller 
public $uses = array('Game', 'User', 'Contest');
 Wechat,  wechat 

Wechat Model , 
$this->loadModel('External.Wechat');

6、cakephpクエリー
$conditions = array();
$conditions['or'] = array(
		array('BuddyRelationship.user_id'=>$userId, 'BuddyRelationship.buddy_user_id'=>$buddyUserId),
		array('BuddyRelationship.user_id'=>$buddyUserId, 'BuddyRelationship.buddy_user_id'=>$userId)
	);
$conditions['and'] = array('BuddyRelationship.status'=>self::Accepted, 'BuddyRelationship.deleted'=>self::Undeleted);
$buddyCount = $this->find('count', compact('conditions'));
$creditModel = ClassRegistry::init("Credit");
$conditions['and'] = array('Credit.amount <>'=>0);
$conditions['and'] = array("User.id" => $uid);
$credit = $creditModel->find('first', array('conditions'=>$conditions));

7、バックグラウンドの割り当てとフロントの取り出し
post :$this->data['openId'];
get :$openId = $this->request->query['openId'];
 :$this->set("openId",$openId);
 :<input type="hidden" name="openId" value="<?php echo $openId; ?>"/>

8、権限検証なしの方法を指定する
	public function beforeFilter(){
		parent::beforeFilter();
		$this->Auth->allow('sheet', 'allagainst');
	}