-1

私は関数であり、CakePHP と OOPHP の初心者なので、しばらくお待ちください ;)

コントローラーのビュー機能で使用する 301 リダイレクト スクリプトを使用して、URL のスラッグを db のスラッグと比較し、それらが一致しない場合は、正しいスラッグを使用して URL に 301 リダイレクトします

私はそれをカスタム関数に変えようとしていますが、あまり成功していません...

これはコードです:

$pieces = explode('__', $this->params['pass'][0]);

    if (!isset($pieces[2])) {
        if ($pieces[1] != $this->Smartphone->field('slug')) {
            $this->redirect(array('action' => 'view', $this->Smartphone->field('id').'__'.$this->Smartphone->field('slug')));
        }
    }

私の推測では、関数は次のようになります。

public function 301redirect($model) {
    $pieces = explode('__', $this->params['pass'][0]);

if (!isset($pieces[2])) {
    if ($pieces[1] != $this->Smartphone->field('slug')) {
        $this->redirect(array('action' => 'view', $this->$model->field('id').'__'.$this->$model->field('slug')));
    }
}

}

この機能を動作させるには、どこに何を配置すればよいか教えていただけますか?

サンクス!

4

1 に答える 1

0

これはカスタムコンポーネントの仕事のように聞こえます(http://book.cakephp.org/2.0/en/controllers/components.html#creating-a-component

コンポーネントを使用すると、機能を一緒にパッケージ化して、コントローラー間で共有できます。

于 2012-08-20T14:50:29.493 に答える