2015-10-05 5 views
-1

http://localhost/yii2-app-basic/web/site/confirm/39/Передача параметра Для управления - yii2-приложение основного Yii2

Я вручную проходя 39 в верхней URL, чтобы знать, как работать с параметрами.

Я хочу отобразить 39 в confirm.php, но это не работает. Как только я прохожу $id в actionConfirm($id) из SiteController Контроллер. Страница не найдена Ошибка Прибытие. В чем может быть проблема.

Я только что задал один вопрос 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)); 
    } 
} 

Ошибка Coming

enter image description here

Как введите 39 из URL-адреса на страницу confirm.php. Пожалуйста, помогите мне. Простите меня, если это глупый вопрос.

+0

Возможный дубликат [URL Routing - юй-базового приложения - Yii2] (http://stackoverflow.com/questions/32947396/url-routing-yii-basic-app-yii2) – soju

+1

заменить '' в ' '. – GAMITG

+0

No Mr @gamitg. Я сделал. Но все равно не сработало. Вы знаете. Вы ранее решили мой вопрос. Это другой вопрос. Я не могу получить 39 на моей странице confirm.php. –

ответ

1

вы уверены, что вы включили

short_open_tag=On 

в вашем php.ini?

также правильный короткий код

Вы также можете увидеть это обсуждение: PHP echo vs PHP short tags

кстати вам не нужны и если вы используете параметр во имя функции здесь actionConfirm ($ ID) у вас будет необходимый параметр, который заполняется параметром, заданным параметрами GET из вашего URL-адреса запроса. Что в вашем случае/сайта/подтвердить/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

, если вы все еще получаете ошибку, тогда у вас все еще есть проблема с вашей маршрутизацией URL. вы должны иметь возможность отображать некоторые страницы. Что происходит, когда вы щелкаете по ссылке в своем меню? исправить это первым. то ваша страница отобразит идентификатор, который вы отправили. – BHoft

+0

Он отлично работает, когда я нажимаю регистр, и т. Д. Меню Mr @Bhoft. ОК. Расскажи мне. Это то, что я написал в контроллере для доступа к значениям URL. ?? –

Смежные вопросы