問題タブ [yii-routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
633 参照

php - Yii - コントローラを動的にロードする

私は Yii フレームワークをいじってみましたが、もう少し深く考えて、いくつかの異なる URL が同じコントローラーを指すアプリケーションをセットアップしたいと考えています。

通常、domain.com/content は、MVC の標準であるクラス ContentController を指します。

私がやりたいことは、ArticlesController、DisplayController、および SplashController という 3 つのコントローラーをセットアップすることです (おそらくそれ以上ですが、これで十分です)。

次に、基本的にクライアント用の CMS となるものをセットアップします。クライアントは必要な数のページを作成し、データを処理するために既にセットアップした上記の 3 つのコントローラーをポイントすることができます。

たとえば、私のクライアントは、次のページを設定できます: ニュース、通知、技術、およびそれらすべてが ArticlesController を指すようにします。また、管理、スペシャル、サポートのページを設定し、それらすべてが DisplayController を指すようにすることもできます。

これらすべてのコントローラーが Gii モジュールを使用して作成できることは知っていますが、この場合、非技術者には適していないと思うため、オプションではありません。

クライアントが CMS にログインできるようにして、「randompage」という新しいページを作成することを決定し、ドロップダウン メニューを使用して ArticlesController にポイントし、それに対して一連の記事を作成して、それらを作成できるようにしたいだけです。 domain.com/randompage/article-1 domain.com/randompage/article-2 で記事にアクセスできます

コントローラー RandompageController がないため、サイト/エラーを指す標準設定を使用

これまでに行ったことは、コントローラー ID を上書きできるコントローラー クラスにコンストラクターを作成することです。

CController クラスをチェックインすると、$this->_id = 記事、表示、またはスプラッシュのいずれかですが、アプリケーション自体はまだサイト/エラーをロードします

コントローラーを他の場所で設定/オーバーライドする必要があると思います。私が試してみました

しかし、それは何の効果もありません

おそらく、Yii がセットアップされ、URL ごとに特定のコントローラーを必要とする必要がありますが、それは、クライアントに対してかなり厳格なソリューションを開発し、新しいコントローラーを追加するたびに開発者を呼び出す必要があることを意味します。

私がうまくやろうとしていることを説明できたことを願っています。

0 投票する
1 に答える
93 参照

php - yii でコントローラ indexcontroller を作成する

yiiでブログを作ろうと思っています。article という名前のテーブルがあり、対応するモデル、ビュー、コントローラーはgiiを使用して生成されます。投稿をホームページに表示させたいので設定

ホームページには投稿が表示されるのですが、続きを読むのタイトルをクリックすると、URLにコントローラ名が表示されたままです

したがって、代わりにURLを次のようにしたい:

URL でコントローラー名を非表示にしたい。

それを実装するための従来の方法は何ですか?

URLをseoフレンドリーにしたかったので、次のルールを使用しました。

ArticleController の loadmodel() で、findByPk($id) を変更して、年、月、および一意のバニティ URL を使用してデータをフェッチします。したがって、www.yiisite.com/2013/07/vanity-url-article のような URL を取得します。

このアプローチは大丈夫ですよね?

0 投票する
1 に答える
999 参照

php - 複数のモジュールを使用する場合の Yii ルーティング

最近、複数のモジュールで Yii プロジェクトを実行している実稼働サーバーを再インストールしました。ルーティング部分は、再インストール前にうまく機能していました。問題がないか Nginx の構成を数回確認しましたが、すべて問題ないように見え、実際には古いサーバーから動作中の構成をコピーしました。

問題は、(任意のサブドメインでの) すべてのリクエストが CHttpException:Unable to resolve the request "default/site/index".コントローラーなどを呼び出した場合でも発生することです。

テスト用に新しいサブドメイン(ルールが指定されていないもの)を開きましたが、それもこのエラーにリダイレクトされました。(最後の2つのルールなしで試してみました)

Yii には次のルーティング規則があります: (print_r の結果)

すべての Nginx 構成は次のようになります。

ファイルには次のyii-rules.confような一般的なルールがあります: (私は違いを生むものだけをコピーします)

このエラーの原因となる可能性のあるアイデアが不足しています。おそらく、私たちが気付いていない小さな問題です :\

このエラーはログに何も生成せず (もちろんアクセス ログのみ)、yii のアクセス ログは書き込みのみで、ブラウザに表示される内容は「解決できません...」です。

このエラーを回避するには、構成またはルール リストをどのように変更すればよいですか?

0 投票する
2 に答える
133 参照

php - Yii はモジュールの URL をルーティングできません

いくつかのモジュールを含む Yii プロジェクトがあります。それらの 1 つはfacebookと呼ばれます。これを使用して Facebook アプリを管理しますが、ルーティングに問題があります。

次のルートを保存しましたが、追加のパラメーターなしでのみ機能します。

したがって、URL にいくつかのパラメーターを追加しようとするまでは、これはうまく機能します。パラメータを使用すると、次の形式でのみ機能します。

同じアプリケーションを使用している場合でも、これらは異なるドメインであるため、これは大きな問題です。したがって、Facebook はこれを使用することしか許可していません。私がこのメイン ドメインの使用を許可した場合、私は安全ではないと感じています。

この問題の根源は何ですか?