2015-10-05 76 views
-1

http://localhost/yii2-app-basic/web/site/confirm/39/傳遞參數控制器 - yii2-APP-基本Yii2

我手動傳遞39上URL知道如何與參數工作。

我想在confirm.php中顯示39,但它不起作用。儘快,我通過$idSiteController控制器。 未找到頁面錯誤。可能是什麼問題。

我剛纔問了一個問題URL Routing,在那裏我得到了我的答案。但是,現在我陷入了困境。

confirm.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)); 
    } 
} 

錯誤即將

enter image description here

如何從網址帶來39到confirm.php頁面。請幫幫我。原諒我,如果這是一個愚蠢的問題。

+0

[URL Routing-yii-basic-app-Yii2]可能的重複項目(http://stackoverflow.com/questions/32947396/url-routing-yii-basic-app-yii2) – soju

+1

將''替換爲' <?php echo $ id;?>'。 – GAMITG

+0

沒有Mr @gamitg。我做過了。但是,仍然沒有奏效。你懂。你以前解決了我的問題。這是不同的問題。我無法在我的confirm.php頁面中獲得39。 –

回答

1

你確定你已經在你的php.ini啓用

short_open_tag=On 

也是正確的短代碼是

你也可以看到這樣的討論: PHP echo vs PHP short tags

順便說一句,你不需要兩個,如果你在函數名在此actionConfirm($ id)的使用參數您將擁有一個必需的參數,該參數由來自請求URL的GET參數設置的參數填充。 這是你的情況/網站/確認/ 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+>' => '/', 

忘了提,如果你沒有自己的規則,只是沒有設置在設置任何規則,那麼默認規則將被用來處理大部分查詢的正常進行。

+0

Yess。 short_open_tag = on在我的php.ini –

+0

如果你仍然有錯誤,那麼你的網址路由仍然有問題。你應該能夠渲染一些頁面。當您點擊菜單中的關於鏈接時會發生什麼?先解決這個問題。那麼你的頁面將呈現你提交的ID。 – BHoft

+0

它工作正常,當我點擊註冊,關於等菜單Mr @Boft。好。告訴我。這是我寫在控制器訪問URL的值的方式。 ?? –