2016-10-04 80 views
0

我想用Yii2框架構建一個todo應用程序。 我使用了Gii插件並創建了模型,控制器和視圖。但是,當我在地址欄中鍵入地址列表 錯誤404發生的索引。無法訪問通過gii從url創建的CRUD

我的指標是 http://localhost/basic/web/

我嘗試了所有的url組合,但仍然同樣的錯誤。所有文件都已正確創建,但仍無法找到它們。

sitecontroller.php

<?php 

namespace app\controllers; 

use Yii; 
use yii\filters\AccessControl; 
use yii\web\Controller; 
use yii\filters\VerbFilter; 
use app\models\LoginForm; 
use app\models\ContactForm; 

class SiteController extends Controller 
{ 
    /** 
    * @inheritdoc 
    */ 
    public function behaviors() 
    { 
     return [ 
      'access' => [ 
       'class' => AccessControl::className(), 
       'only' => ['logout'], 
       'rules' => [ 
        [ 
         'actions' => ['logout'], 
         'allow' => true, 
         'roles' => ['@'], 
        ], 
       ], 
      ], 
      'verbs' => [ 
       'class' => VerbFilter::className(), 
       'actions' => [ 
        'logout' => ['post'], 
       ], 
      ], 
     ]; 
    } 

    /** 
    * @inheritdoc 
    */ 
    public function actions() 
    { 
     return [ 
      'error' => [ 
       'class' => 'yii\web\ErrorAction', 
      ], 
      'captcha' => [ 
       'class' => 'yii\captcha\CaptchaAction', 
       'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, 
      ], 
     ]; 
    } 

    /** 
    * Displays homepage. 
    * 
    * @return string 
    */ 
    public function actionIndex() 
    { 
     return $this->render('index'); 
    } 

    /** 
    * Login action. 
    * 
    * @return string 
    */ 
    public function actionLogin() 
    { 
     if (!Yii::$app->user->isGuest) { 
      return $this->goHome(); 
     } 

     $model = new LoginForm(); 
     if ($model->load(Yii::$app->request->post()) && $model->login()) { 
      return $this->goBack(); 
     } 
     return $this->render('login', [ 
      'model' => $model, 
     ]); 
    } 

    /** 
    * Logout action. 
    * 
    * @return string 
    */ 
    public function actionLogout() 
    { 
     Yii::$app->user->logout(); 

     return $this->goHome(); 
    } 

    /** 
    * Displays contact page. 
    * 
    * @return string 
    */ 
    public function actionContact() 
    { 
     $model = new ContactForm(); 
     if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) { 
      Yii::$app->session->setFlash('contactFormSubmitted'); 

      return $this->refresh(); 
     } 
     return $this->render('contact', [ 
      'model' => $model, 
     ]); 
    } 

    /** 
    * Displays about page. 
    * 
    * @return string 
    */ 
    public function actionAbout() 
    { 
     return $this->render('about'); 
    } 
    public function actionSay($message = 'Hello') 
    { 
     return $this->render('say',['message'=>$message]); 
    } 
} 

的意見/網站/ index.php文件

<?php 

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

$this->title = 'My Yii Application'; 
?> 
<div class="site-index"> 

    <div class="jumbotron"> 
     <h1>Congratulations!</h1> 

     <p class="lead">You have successfully created your Yii-powered application.</p> 

     <p><a class="btn btn-lg btn-success" href="http://www.yiiframework.com">Get started with Yii</a></p> 
    </div> 

    <div class="body-content"> 

     <div class="row"> 
      <div class="col-lg-4"> 
       <h2>Heading</h2> 

       <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et 
        dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip 
        ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu 
        fugiat nulla pariatur.</p> 

       <p><a class="btn btn-default" href="http://www.yiiframework.com/doc/">Yii Documentation &raquo;</a></p> 
      </div> 
      <div class="col-lg-4"> 
       <h2>Heading</h2> 

       <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et 
        dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip 
        ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu 
        fugiat nulla pariatur.</p> 

       <p><a class="btn btn-default" href="http://www.yiiframework.com/forum/">Yii Forum &raquo;</a></p> 
      </div> 
      <div class="col-lg-4"> 
       <h2>Heading</h2> 

       <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et 
        dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip 
        ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu 
        fugiat nulla pariatur.</p> 

       <p><a class="btn btn-default" href="http://www.yiiframework.com/extensions/">Yii Extensions &raquo;</a></p> 
      </div> 
     </div> 

    </div> 
</div> 
+0

顯示您的基本\ config \ web.php組件=> urlManager(如果您擁有它)..並顯示用於調用索引的url。 – scaisEdge

+0

web.php文件中沒有像urlManager這樣的東西。索引的URL是http://localhost/basic/web/index.php – Taurus

+0

然後檢查你是否有在網站控制器中使用gii ..生成的代碼?和basic/views/site中的views(index.php)? ..如果你有這些文件,請更新你的問題,並添加SiteController.php和視圖/網站/ index.php的代碼 – scaisEdge

回答

0

如果你不使用prettyUrl的是,你應該訪問http://localhost/basic/web/index.php?r=gii

+0

我可以訪問gii,但無法訪問它所製作的模型和CRUD – Taurus

+0

你的意思是找不到這些文件?或通過網址訪問? –

+0

這些文件存在,但無法通過網址訪問它們。 – Taurus

0

確保,在web.php開發環境沒有評論。

//DEVELOPMENT ENVIRONMENT 
if (YII_ENV_DEV) { 
    // configuration adjustments for 'dev' environment 
    $config['bootstrap'][] = 'debug'; 
    $config['modules']['debug'] = [ 
     'class' => 'yii\debug\Module', 
    ]; 

    $config['bootstrap'][] = 'gii'; 
    $config['modules']['gii'] = [ 
     'class' => 'yii\gii\Module', 
    ]; 
} 

return $config; 

然後嘗試使用: http://localhost/basic/web/index.php?r=gii

0

你應該充分照顧你的時候填寫controller class領域,因爲它是區分大小寫。寫app\controllers\...而不是app\Controllers\...

我覺得在CRUD生成表單中的所有字段區分大小寫。