0

http://localhost/yii2-app-basic/web/site/confirm/39/

パラメータの操作方法を知るために、上部の URL に手動で 39 を渡しています。

39インチを表示したいのですconfirm.phpがうまくいきません。すぐに、私は$idコントローラーをactionConfirm($id)渡します。SiteControllerページが見つかりませんエラーが発生しました。何が問題になる可能性があります。

URL Routingという 1 つの質問をしたところ、回答が得られました。しかし、今ここで行き詰まりました。

確認.php

<?php

    /* @var $this yii\web\View */

    use yii\helpers\Html;
    use yii\bootstrap\ActiveForm;
    use yii\captcha\Captcha;
    use yii\bootstrap\Modal;
    use yii\helpers\Url;

    $this->title = 'Contact';
    $this->params['breadcrumbs'][] = $this->title;
?>
<div class="site-about">
    <?echo $id;?>
</div>

SiteController.php

<?php

namespace app\controllers;

use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter;
use yii\swiftmailer\Mailer;

use app\models\LoginForm;
use app\models\ContactForm;
use app\models\EntryForm;
use app\models\RegisterForm;
use app\models\LoginExecForm;
use app\models\ForgotPasswordForm;

class SiteController extends Controller
{
    .
    .
    .
    public function actionConfirm($id)
    {

        $id = Yii::$app->request->get('id');
        return $this->render("confirm",array("id"=>$id));
    }
}

エラーが発生しています

ここに画像の説明を入力

URL からconfirm.phpページに 39 をもたらす方法。私を助けてください。これがばかげた質問であれば、私を許してください。

4

1 に答える 1

1

有効にしていますか

short_open_tag=On

あなたのphp.iniで?

また、正しいショートコードは

この議論も見ることができます: PHP エコー vs PHP ショートタグ

ここで関数名 actionConfirm($id) にパラメーターを使用している場合、両方は必要ありません。要求 URL からの GET パラメーターによって設定されたパラメーターによって埋められる必須パラメーターがあります。あなたの場合はどちらですか /site/confirm/39/

したがって、関数名にそれらを設定します

public function actionConfirm($id)

または手動で取得する

$id = Yii::$app->request->get('id');

両方は必要ありません。

しかし、これはあなたの問題ではありません。あなたはまだ正しいコントローラーで正しいアクションを呼び出していません。

この urlManager ルールを使用します

'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',

追加した 3 つは間違っています。削除してください。

   '<controller:\w+>/<id:\d+>' => '/view',
   '<controller:\w+>/<action:\w+>/<id:\d+>' => '/',
   '<controller:\w+>/<action:\w+>' => '/',

独自のルールがない場合、設定でルールを設定しない場合は、デフォルトのルールが使用され、ほとんどのクエリが正常に処理されることに注意してください。

于 2015-10-05T13:03:25.180 に答える