2016-10-04 9 views
0

Я хочу сделать приложение todo с Yii2 Framework. Я использовал плагин Gii и создал модели, контроллеры и представления. Но когда я набираю адрес в адресной строке в индекс списка возникает ошибка 404.Невозможно получить доступ к CRUD, созданному через gii, из url

Мой индекса на 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 .. в контроллере сайта? и представления (index.php) в basic/views/site? .. если у вас есть эти файлы, пожалуйста, обновите свой вопрос и добавьте SiteController.php и views/site/index.php код – scaisEdge

ответ

0

Если вы не используете prettyUrl еще, вы должны получить доступ к http://localhost/basic/web/index.php?r=gii

+0

Я могу получить доступ к gii, но не могу получить доступ к моделям и CRUD, сделанным им – Taurus

+0

Вы имеете в виду, что не можете найти файлы? или доступ через веб-адрес? –

+0

Файлы присутствуют, но не могут получить к ним доступ по URL-адресу. – 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 чувствительны к регистру.