1

私のコードは次のとおりです。

public function join_membership() 
{
    $this->layout = 'colorbox';
    $membership_id = $this->Cookie->read('membership_id');
    $membership =  $this->Membership->find('first', array('conditions'=>array('Membership.id'=>$membership_id)));
    $this->set('membership',$membership); 
    if($this->request->is('post'))
    {
        if($this->JoinMembership->save($this->request->data['JoinMembership']))
        {
            $this->redirect(array('action' => 'member_login'));
        }
    }
}

このコードはデータベースにデータを適切に保存しますが、その後空白のページを表示し、指定された関数にリダイレクトしません。前もって感謝します....

4

3 に答える 3

5

誰かが自分の空白/出力がどこにあるのか分からない場合 (私がしたように)、$this->redirect呼び出しの直前にこの小さなブロックを置きます:

$file = '';
$line = '';
if (headers_sent($file, $line)) {
    die('Output in ' . $file . ' at line ' . $line);
}

コントローラーのアクションを停止し、空白/出力がある正確なファイルと行を出力します。

于 2014-09-13T05:21:49.933 に答える
2

次のコードを if 条件に挿入してみてください。

$this->redirect(array('controller' => 'Controller_Name', 'action' => 'member_login'));

使用済みのものに何かを印刷することもできif conditionます。また、else部分を使用して、何かをに出力しelse partます。デバッグモード 2 で確認します。

于 2012-08-20T06:19:14.437 に答える
1

1) member_login アクションは join_membership と同じコントローラーにありますか? そうでない場合は、Controller => "Some_Controller" キーと値のペアを配列に追加します。

2) 機能しない場合は、if 条件がそのように機能しているかどうかを確認します

    if($this->JoinMembership->save($this->request->data['JoinMembership']))
            {

                debug("in");exit();

                $this->redirect(array('action' => 'member_login'));
            }
        }

if 条件が true を返す場合、"in" メッセージが表示されます。

使えますのでご了承ください

$this->redirect("action_name");
$this->redirect("/controller_name/action_name");
于 2012-08-20T06:23:47.177 に答える