2016-10-04 2 views
0

Je souhaite créer une application todo avec Yii2 Framework. J'ai utilisé le plugin Gii et créé des modèles, des contrôleurs et des vues. Mais quand je tape l'adresse dans la barre d'adresse à l'index de la liste erreur 404 se produit.Impossible d'accéder à CRUD créé via gii à partir de l'URL

Mon index est sur http://localhost/basic/web/

J'ai essayé toutes les combinaisons d'URL, mais toujours la même erreur. Tous les fichiers ont été créés correctement mais je n'arrive toujours pas à les localiser.

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]); 
    } 
} 

vues/site/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

montrez votre composant de base \ config \ web.php => urlManager (si vous l'avez) ..et montrez l'URL que vous utilisez pour appeler l'index .. – scaisEdge

+0

Il n'y a rien comme urlManager dans le fichier web.php. L'url de l'index est http: //localhost/basic/web/index.php – Taurus

+0

Ensuite, vérifiez si vous avez le code généré avec gii .. dans le contrôleur de site? et les vues (index.php) dans basic/views/site? .. si vous avez ces fichiers s'il vous plaît mettre à jour votre question et ajouter SiteController.php et views/site/index.php code – scaisEdge

Répondre

0

Si vous n'utilisez pas prettyUrl encore, vous devez accéder http://localhost/basic/web/index.php?r=gii

+0

Je peux accéder à Gii mais ne peux pas accéder aux modèles et CRUD faite par lui – Taurus

+0

vous voulez dire ne peut pas trouver les fichiers? ou accès via URL web? –

+0

Les fichiers sont présents mais ne peuvent pas y accéder via url. – Taurus

0

Assurez-vous que, dans web.php DEVELOPMENT ENVIRONMENT n'est pas commenté.

//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; 

puis essayez d'utiliser: http://localhost/basic/web/index.php?r=gii

0

Vous devriez être des soins complets lorsque vous remplissez controller class champ, car il est sensible à la casse . Écrivez app\controllers\... au lieu de app\Controllers\....

Je pense que tous les champs du formulaire CRUD Generator sont sensibles à la casse.