web-dev-qa-db-fra.com

Laravel view not found exception

J'ai un problème avec la vue laravel qui ne se trouve pas par la fonction route. J'ai composé dumpautoload mais pas d'utilisation ArticleController.php

<?php
class ArticleController extends BaseController
 {
 public function showIndex()
 {
    return View::make('index');
 }

 public function showSingle($articleId)
 {
 return View::make('single');
 }
}


//Route
Route::get('index', 'ArticleController@showIndex');

InvalidArgumentException

View [index] not found.
open: /opt/lampp/htdocs/laravel-project/bootstrap/compiled.php

    foreach ((array) $paths as $path) {
    foreach ($this->getPossibleViewFiles($name) as $file) {
    if ($this->files->exists($viewPath = $path . '/' . $file)) {
    return $viewPath;
    }
    }
    }
    throw new \InvalidArgumentException("View [{$name}] not found.");
    }
    protected function getPossibleViewFiles($name)

Server/Request Data
REDIRECT_UNIQUE_ID  UfWlAn8AAQEAABR2VakAAAAF
REDIRECT_STATUS     200
UNIQUE_ID   UfWlAn8AAQEAABR2VakAAAAF
HTTP_Host   localhost
HTTP_USER_AGENT     Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0
HTTP_ACCEPT     text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_LANGUAGE    en-US,en;q=0.5
HTTP_ACCEPT_ENCODING    gzip, deflate
HTTP_COOKIE     laravel_session=f94fpel78jn89nhah32mflqn15
HTTP_CONNECTION     keep-alive
HTTP_CACHE_CONTROL  max-age=0
PATH    /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
LD_LIBRARY_PATH     /opt/lampp/lib:/opt/lampp/lib
SERVER_SIGNATURE    
SERVER_SOFTWARE     Apache/2.4.4 (Unix) OpenSSL/1.0.1e PHP/5.4.16 mod_Perl/2.0.8-dev Perl/v5.16.3
SERVER_NAME     localhost
SERVER_ADDR     127.0.0.1
SERVER_PORT     80
REMOTE_ADDR     127.0.0.1
DOCUMENT_ROOT   /opt/lampp/htdocs
REQUEST_SCHEME  http
CONTEXT_PREFIX  
CONTEXT_DOCUMENT_ROOT   /opt/lampp/htdocs
SERVER_ADMIN    [email protected]
SCRIPT_FILENAME     /opt/lampp/htdocs/laravel-project/public/index.php
REMOTE_PORT     50211
REDIRECT_URL    /laravel-project/public/index
GATEWAY_INTERFACE   CGI/1.1
SERVER_PROTOCOL     HTTP/1.1
REQUEST_METHOD  GET
QUERY_STRING    
REQUEST_URI     /laravel-project/public/index
SCRIPT_NAME     /laravel-project/public/index.php
PHP_SELF    /laravel-project/public/index.php
REQUEST_TIME_FLOAT  1375053058.123
REQUEST_TIME    1375053058
28
user474901

Cela se produit lorsque Laravel ne trouve pas de fichier de vue dans votre application. Assurez-vous que vous avez un fichier nommé: index.php ou index.blade.php dans votre répertoire app/views.

Notez que Laravel effectuera les opérations suivantes lors de l’appel View::make:

  • Pour View::make('index'), Laravel recherchera le fichier: app/views/index.php.
  • Pour View::make('index.foo'), Laravel recherchera le fichier: app/views/index/foo.php.

Le fichier peut avoir l’une de ces deux extensions: .php ou .blade.php.

28
Rubens Mariuzzo

Cette erreur se produit également lorsque vous essayez de déplacer tout le répertoire du projet vers un autre chemin. Et il vous est arrivé d'exécuter les commandes suivantes ci-dessous AVANT de vous déplacer.

php artisan optimize --force
php artisan config:cache
php artisan route:cache

Le message d’erreur de mine s’affiche comme ceci  enter image description here

Comme vous pouvez le voir, l'ancien chemin était écrit dans le fichier compiled.php. Donc, pour résoudre le problème. Exécutez simplement la même commande AGAIN sous le dossier du projet dans votre nouvel emplacement.

php artisan optimize --force
php artisan config:cache
php artisan route:cache

J'espère que cela t'aides.

33
Dean Chiu

Cette commande fonctionne pour moi 

php artisan config:cache

Comme le dit la documentation Laravel, Laravel est configuré par défaut pour utiliser le pilote de cache de fichiers, qui stocke les objets mis en cache et sérialisés dans le système de fichiers. Il doit donc remettre en cache le système de fichiers pour que les vues et les itinéraires récemment ajoutés soient disponibles. Je ne sais pas non plus pourquoi laravel doit réellement recacheter

13
Amir

Juste dans l'appel du contrôleur 

return View('index');

sans pour autant 

::make
3
Paspartu

arrêtez le serveur et exécutez cette commande sur le terminal.

php artisan config:cache

le démarrer le serveur

2
Inamur Rahman

Dans mon cas, j’appelais View::make('User/index'), où j’étais en réalité dans l’annuaire des utilisateurs et qui s’appelait index.blade.php. Ergo après que je l'ai changé pour View@make('user.index') tous ont commencé à travailler.

1
Adam

Dans mon cas, Laravel 5.3

Route::get('/', function(){
    return View('test');
});

test.blade.php ne rendait pas le rendu, mais d'autres vues affichaient le rendu sur localhost via XAMPP sur mac Lors de l'exécution du serveur artisan , la vue a commencé à afficher le même URL sur XAMPP.

php artisan serve

Pour éviter un tel scénario, il convient de tester les applications Laravel avec un serveur artisanal uniquement.

0
zeeawan

J'avais la même erreur, mais dans mon cas, la vue s'appelait seeProposal

Je l'ai changé en seeproposal et cela a bien fonctionné ...

Ce n’était pas un problème lors des tests locaux, mais apparemment, Laravel fait une distinction avec les majuscules en cours de production. Donc, pour ceux qui ont des opinions en majuscules, je les changerais toutes en minuscules.

0
ndarriulat

Comme @deanchiu l'a dit, cela peut arriver lorsque vous déplacez l'ensemble du projet vers un autre chemin ou un autre serveur. 

Mais dans mon cas, je n'avais pas accès à la ligne de commande sur le serveur et exécuter les commandes suivantes AVANT de télécharger mon projet m'a aidé. 

> php artisan route:clear
> php artisan config:clear
0
aleebek