ねえ。 メニューコンポーネントの「現在の」クラスを作成し、メニューを作成しました。現在のクラスを調べるには、$this>getContext()->getRouting()->getCurrentRouteName();
を使用することを推奨しました。これを行うためには、存在するすべてのメニュー要素のルートを設定する必要がありました。このルートに問題がありますか?
これまでのところ、私は2つの要素があるとします.1つはフロントページ用、もう1つは顧客用です。私がフロントページをブラウズしているときは、どのようなアクションとパラメータが必要かを問わず、上記のコードが "フロントページ"を返すことを望みます。同じことが顧客のためになります。今
顧客のための私のルール、以下の通りです: のrouting.yml
customer: param: { module: customer }
は私がURLを設定することは重要ではないと思った、私はすでに顧客であることをモジュールに指定されています。メニュー要素は、使用されるアクションに関係なく「現在の」クラスを持つ必要があります。私がリンクしてどのように
:今、 "顧客/ some_action" に行く
if ($current == $name){ echo link_to($name, $link, array("class" => "selected")); }else { echo link_to($name, $link); }
リンク($リンク)が動作しない、彼らは同じくらい、 "/" に表示されます。だから私は$リンクの周りにurl_forを使うと思っていたが、どちらもうまくいきませんでした。
ルーティングルールに問題がある可能性があります。手動で/ customer/newと入力すると、そのページが表示されるためです。テンプレートの私が$this>getContext()->getRouting()->getCurrentRouteName();
を書き出すと、デフォルトと表示されます。だから私のルールは間違いなく全く働かない。私は他のルールも試しましたが、誰も働かせていません。そのトリックは、モジュールの顧客の下にあるもののために働く1つのルールを作ることです。
はい、私はそれぞれのルールを変更した後にキャッシュをクリアします。
ありがとうございます。
EDIT: 私はルーティングルールを機能させましたが、カスタマーモジュールの下のすべてのアクションではありません。私はそれぞれの行動のルールを作る必要があります。しかし、リンクはまだ壊れている、彼らは "/"を示しています。
私の新しいルール:
customer_index: url: /:module param: { module: customer, action: index } customer_new: url: /:module/:action param: { module: customer, action: new }
これらのリンクのどれも働かない: echo link_to("Customers", "@customer_index", array("module" => "customer"));
echo link_to("New customer", "@customer_new", array("module" => "customer"));