안녕하세요! 심포니 1.4.11을 사용합니다. 내 프로젝트의 모든 사용자 광고에 소유자가 프리미엄 계정을 보유한 경우에만 사이트에서 사용할 수 있습니다. 문제는 모든 광고를 직접 링크에서 사용할 수 있다는 것입니다. 따라서 Jobbet 6 일 이후에이 문제의 결정을 사용합니다. 라우팅 :method_for_query, 맞춤 페이지로 리디렉션
ads_show_user:
url: /:sf_culture/ads/:slug
class: sfDoctrineRoute
options: { model: Ads, type: object, method_for_query: retrievePayAd }
param: { module: ads, action: show }
requirements:
sf_method: [get]
sf_culture: (?:de|en|ru)
모델 :
public function retrievePayAd(Doctrine_Query $q)
{
$q ->leftJoin('a.Owner o')
->leftJoin('o.Profile p')
->andWhere('p.payed_until > NOW()')
->andWhere('a.active = ?',1)
->andWhere('a.expires_at > NOW()');
return $q->fetchOne();
}
그리고 모두가 잘 작동하지만 다음 문제, 광고의 소유자가 프리미엄을 지불하지 않은 경우, 그는 너무 자신의 광고의 확장 버전입니다 볼 수 없습니다, 모든 사용자처럼 ... 404 페이지가 아닌 다른 페이지로 사용자를 리디렉션 할 수 있습니까? 사용자에게 말할 수있는 이유는 무엇입니까? 왜 확장 버전의 광고를 볼 수 없습니까? 아니면 광고 소유자가 확장 버전을 볼 수있는 다른 방법이 있습니까? 고맙습니다 !
고맙습니다! 그것은 작동합니다! – denys281