Cakephp请求操作使我永无休止的请求循环

问题描述

| 我有一个带有requestAction的元素,但它给了我一个永无止境的请求循环。 例如: 这是我的要素
<?PHP $plans = $this->requestAction(\'profile/Plans\'); ?>
<?PHP foreach($plans as $plan): ?>

    <div class=\"notificationsmall <?PHP echo $plan[\'sections\'][\'lable\']; ?>\">
        <p><b><?PHP echo $plan[\'plans\'][\'plan_title\']; ?></b></p>
        <p><?PHP echo $plan[\'plans\'][\'plan_description\']; ?></p>
    </div>  
<?PHP endforeach;?>
这就是那个功能。它在“个人资料”控制器中
function Plans($id = Null){ 
    $this->set(\'plans\',$this->Plan->Query(\'SELECT * FROM plans,sections WHERE plans.user_id=\'.$id.\' AND sections.id=plans.section_id\'));
}
我不知道怎么了。     

解决方法

第一部分代码是配置文件/计划视图吗?如果是这样,则会出现无限循环,因为视图再次调用概要文件/计划操作,并返回到视图中的同一点,依此类推。 从代码来看,我认为您对元素的工作方式有一些误解。需要插入元素时,而不是在元素本身内部,应使用requestAction。 (我同意Dunhamzzz的观点,应避免使用requestAction,但有时是不可能的。您应考虑在这种情况下使用实际元素是否可行。)     ,问题是您正在使用RequestAction!不惜一切代价避免它。您应该在Planning模型中创建一个方法,该方法基本上返回您正在执行的查询的内容,例如
function getByUserId($userId) {
    return $this->find(\'all\',array(\'conditions\' => array(\'Plan.user_id\' => $userId)));
}
然后在行动中,只要做
$this->set(\'plans\',$this->Plan->getByUserId($userId));