2012-02-17 3 views
1

저는 CakePHP 2.0.5를 사용하고 있습니다 (그러나 이것은 반드시 cakephp 관련 질문이 아닙니다). 쿠폰과 사용자 모델이 있습니다. 나는 (ID/쿠폰 ID/USER_ID/생성)는 "coupons_printed"테이블에 정보를 저장할CakePHP : 새 컨트롤러를 만들려면

class CouponsController extends AppController { 
    public function printcoupon($id = null) { 
     // code 
    } 
} 

: 때마다 사용자가 (: 쿠폰 컨트롤러에 의해 proccessed) 쿠폰을 인쇄합니다. (해당 페이지를 볼 때마다 컨트롤러에서 호출)?

class Coupon extends AppModel { 
    function insertIntoPrinted($id) { 
     $this->query("UPDATE coupons_printed SET ....."); 
    } 

} 

답변

2

무슨 일이 있어도을 나는이에 대한 새로운 모델을 만들 경우, 또는 그냥 유사한 쿠폰 모델의 내부 기능을 작성해야합니다, 원시 SQL 쿼리는 이 아닌입니다. 가능하다면 항상 CakePHP 메소드를 사용하십시오 (거의 항상 입니다).

(보조 노트로, PrintedCoupon 모델에 이름을 더 자연스러운 방법이 될 것입니다,하지만 ...) 당신은 CouponsPrinted 모델에 insertIntoPrinted() 기능을 넣어해야 그런 다음 쿠폰 모델에 hasMany의 관계를 추가 할 수 있습니다 ($hasMany = array('CouponsPrinted'))와 CouponsController에서 함수를 호출 :

public function printcoupon($id = null) { 
    $this->Coupon->CouponsPrinted->insertIntoPrinted($id); 
} 
0

CakePHP의 모델 일 전화 연결을 가지고있다.
귀하의 경우, 쿠폰은 coupons_printed와 hasMany 연관이 있습니다.
새로운 모델을 만들거나 쿠폰 모델의 연결을 사용하여 쿼리를 생성 할 수 있습니다. 생성 된 쿼리는 동일합니다.

귀하의 CouponsController는 이미 쿠폰 모델에 의존하므로 다른 모델을 만들지 않는 것이 더 좋은 해결책입니다.

관련 문제