$this->url() ビュー ヘルパーは、指定されたパラメーターとルート名を照合して URI を作成します。
コードが機能するためには、次のことを行う必要があります。
1 - ルーター ファイルで、次のようにルートを指定します。
$router->addRoute(
'email',
new Zend_Controller_Router_Route_Regex('([\w\d\.\_]+)@([\w\d\.]+)([\s]*)',
array(
'module' => 'default',
'controller' => 'index',
'action' => 'index'
),
array(
1 => 'username',
2 => 'host'
),
'%s@%s'
)
);
addRoute の最初のパラメーターはルートの名前で、これを の 2 番目のパラメーターとして使用します$this->url()
。2 番目のパラメーターはルーター アダプターです。多くの異なるアダプターがあります (マニュアルを確認してください)。これは正規表現アダプターです。
最初のパラメーター - URI をチェックするための正規表現文字列。これをより電子メールに適した正規表現に変更する必要がありますが、今のところはこれで十分です。
2 番目のパラメータはデフォルトです。
3番目 - 変数。正規表現のグループごとに名前を指定する必要があるため、 @ の前のグループは1 => 'username'
-になり2 => 'host'
ます。
そして最後に 4 番目のパラメーター - 非常に重要な - 逆のルートです。これは、実際に Zend がピースを接着するために使用するものです。各グループを「記号」に変更して作成すると、全体が次のようになり"%s@%s"
ます-それらの作成方法に関するいくつかの記事を読む必要があります-数字のみの場合は%d、文字のみの場合は%w、%混合用で、これ以上何も必要ありませんでした。
2 - ルーターをセットアップしたら、ビュー ファイルに戻り、関数を次のように変更します。
$this->url(array('username' => 'test', 'host' => 'test.com'), 'email');
結果の html は次のようになります。
<a href="test@test.com">EMAIL</a>
3 - サーバー構成または zend アプリケーションの ini ファイルで error_reporting をオンにします。何が実際に誤動作しているのかについて、より深い洞察を得ることができます。