2015-06-12 4 views
1

Я новичок в структуре YII, и я пытаюсь создать приложение, которое работает следующим образом, когда я посещаю мой индекс, он перенаправляет меня на эту страницу под названием «управление», я должен создайте новую страницу с некоторыми параметрами списка, и я должен перенаправить на это, но я не совсем уверен, как это сделать с YII.Создание новой страницы по умолчанию YII и перенаправление на нее

вот мой первоначальный индекс действия:

public function actionIndex() 
{ 
    $this->layout = '//layouts/main'; 
    // renders the view file 'protected/views/site/index.php' 
    // using the default layout 'protected/views/layouts/main.php' 
    if (Yii::app()->user->isGuest) 
    { 
     $this->redirect(Yii::app()->createUrl('site/login')); 
    } 
    else 
    { 
     $this->redirect(array('management/list')); 
     //$this->redirect(array('site/HomePage')); 
     //$this->render('index'); 
    } 
} 

перенаправляет меня управления/список, что я должен сделать, это перенаправить на новую страницу, вместо управления называется домашней странице и в новой странице есть это опция для управления, которая, нажав на нее, вернет вас к правильной странице.

это моя папка управления:

enter image description here

это мое мнение:

enter image description here

, что я сделал это: внутри сайта я создал страницу под названием homepage.php с следующий орган:

<div class="static_page"> 
<?php 
/* @var $this SiteController */ 

$this->pageTitle=Yii::app()->name; 
?> 

    <h2>Welcome to <?php echo CHtml::encode(Yii::app()->name); ?></h2> 

<p>Congratulations! You have successfully created your Yii application.</p> 

<p>You may change the content of this page by modifying the following two files:</p> 
<ul> 
    <li>View file: <code><?php echo __FILE__; ?></code></li> 
    <li>Layout file: <code><?php echo $this->getLayoutFile('main'); ?></code></li> 
</ul> 

<p>For more details on how to further develop this application, please read 
the <a href="http://www.yiiframework.com/doc/">documentation</a>. 
Feel free to ask in the <a href="http://www.yiiframework.com/forum/">forum</a>, 
should you have any questions.</p> 

</div> 

потом я изменил свое actionIndex(), и добавил следующее к другому части:

$this->redirect(array('site/HomePage')); 

, но когда я бегу, что я видел эту ошибку:

The system is unable to find the requested action "HomePage". 

/vagrant/vendor/yiisoft/yii/framework/web/CController.php(483) 

471   return $this->createActionFromMap($map,$actionID,$requestActionID,$config); 
472  } 
473 
474  /** 
475  * Handles the request whose action is not recognized. 
476  * This method is invoked when the controller cannot find the requested action. 
477  * The default implementation simply throws an exception. 
478  * @param string $actionID the missing action name 
479  * @throws CHttpException whenever this method is invoked 
480  */ 
481  public function missingAction($actionID) 
482  { 
483   throw new CHttpException(404,Yii::t('yii','The system is unable to find the requested action "{action}".', 
484    array('{action}'=>$actionID==''?$this->defaultAction:$actionID))); 
485  } 
486 
487  /** 
488  * @return CAction the action currently being executed, null if no active action. 
489  */ 
490  public function getAction() 
491  { 
492   return $this->_action; 
493  } 
494 
495  /** 


// specify how many levels of call stack should be shown in each log message 
15 defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3); 
16 
17 require_once($yii); 
18 
19 Yii::createWebApplication($config)->run(); 
20 
21 echo 'temporary add records to the rbac tables'; 
22 
23 //TODO create temporarily the RBAC settings 
24 $auth=Yii::app()->authManager; 

, как я могу добавить новый homepage.php вместо страницы управления?

EDITED NEW VERSION: Так вот как я это сделал: Я создал новую страницу под названием homepage.php с моими взглядами \ сайт. Затем я открываю главную страницу и добавил следующее:

<div class="static_page"> 
<?php 
/* @var $this SiteController */ 

$this->pageTitle=Yii::app()->name; 
?> 

    <h2>Welcome to <?php echo CHtml::encode(Yii::app()->name); ?></h2> 

<p>You may change the page by clicking on the following pages.</p> 
<ul> 
    <li>For Dossier Management click on: <code><a href="dossiermanagement/list"> dossiers </a></code></li> 
    <li>For Management Information click on: <code> Management Info</code></li> 
    <li>For System Management click on: <code> systemBeheer</code></li> 
</ul> 

<!-- <p>For more details on how to further develop this application, please read 
the <a href="http://www.yiiframework.com/doc/">documentation</a>. 
Feel free to ask in the <a href="http://www.yiiframework.com/forum/">forum</a>, 
should you have any questions.</p> --> 

</div> 

, а также изменил мой actionIndex к $this->render('HomePage');

он работает, но теперь мое Перенаправление не работает:

, например, эта часть является полностью неправильным

<li>For Dossier Management click on: <code><a href="dossiermanagement/list"> dossiers </a></code></li> 
     <li>For Management Information click on: <code> Management Info</code></li> 

как я могу решить эту проблему?

+0

Какую версию YII вы используете? – Tristup

+0

@Tristup версия 1.3 – David

+0

ОК, Текущая версия - 2, вы можете обновить ее. Однако я предлагаю вам некоторые решения, надеюсь, что это сработает для вас. – Tristup

ответ

1

Вместо того, чтобы перенаправлять в другом месте, пожалуйста, загрузите вид

$this->render('yourview/index',array(
 
\t \t \t 'dataProvider'=>$dataProvider, 
 
         'list_arr'=>$this->list 
 
\t \t));

Создайте папку с именем yourview внутри папки просмотра. Даже если вы хотите перенаправить его на контроллер управления, убедитесь, что у вас есть контроллер по имени.

+0

Я не совсем уверен, что с этим делать? Мне просто нужно создать новое имя папки yourview и что еще? может быть, может быть, более конкретным? – David

0

Пожалуйста, введите этот код вместо "$ this-> redirect (array ('management/list'));"

$list=array('David','Tristup'); 
 
$selected_value=''; 
 
$this->render('yourview/index', 
 
       array('list_arr'=>$list,'selected_value'=>$selected_value 
 
\t \t));

Теперь вы пишете этот код в yourview/index.php. Здесь make_id - это имя поля, это соответственно.

<?php  
 
            //echo $selected_value; 
 
            echo CHtml::dropDownList('make_id',$selected_value,$list_arr,array('empty' => 'Select a Make','class'=>'drop_class'));    
 
          ?>

Теперь вы можете увидеть выпадающий список с нашим именем. Пожалуйста, дай мне знать, если возникнут какие-либо вопросы.

+0

это сработало для вас David – Tristup

+0

David, пожалуйста, дайте мне знать, если это сработает для вас. – Tristup

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