SymfonyComponentHttpKernelExceptionNotFoundHttpException Laravel
j'essaie d'utiliser un contrôleur reposant. Voici mon Route.php
:
Route::resource('test', 'TestController');
Route::get('/', function()
{
return View::make('hello');
});
Voici mon TestController.php
<?php
class TestController extends BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
return View::make('test.home');
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @return Response
*/
public function store()
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return Response
*/
public function update($id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
//
}
}
Mon application itinéraire est localhost/Test/public/
et il montre "Vous êtes arrivés" message. Mais quand j'ai essayé localhost/Test/public/test
It gives me "SymfonyComponentHttpKernelExceptionNotFoundHttpException"
Voici mon log:
[2014-05-11 14:29:59] production.ERROR: NotFoundHttpException Route: `http://localhost/Test/public/test` [] []
[2014-05-11 14:29:59] production.ERROR: exception 'SymfonyComponentHttpKernelExceptionNotFoundHttpException' in C:wampwwwtestbootstrapcompiled.php:5289
Stack trace:
#0 C:wampwwwtestbootstrapcompiled.php(4663): IlluminateRoutingRouteCollection->match(Object(IlluminateHttpRequest))
#1 C:wampwwwtestbootstrapcompiled.php(4651): IlluminateRoutingRouter->findRoute(Object(IlluminateHttpRequest))
#2 C:wampwwwtestbootstrapcompiled.php(4643): IlluminateRoutingRouter->dispatchToRoute(Object(IlluminateHttpRequest))
#3 C:wampwwwtestbootstrapcompiled.php(698): IlluminateRoutingRouter->dispatch(Object(IlluminateHttpRequest))
#4 C:wampwwwtestbootstrapcompiled.php(679): IlluminateFoundationApplication->dispatch(Object(IlluminateHttpRequest))
#5 C:wampwwwtestbootstrapcompiled.php(1136): IlluminateFoundationApplication->handle(Object(IlluminateHttpRequest), 1, true)
#6 C:wampwwwtestbootstrapcompiled.php(7218): IlluminateHttpFrameGuard->handle(Object(IlluminateHttpRequest), 1, true)
#7 C:wampwwwtestbootstrapcompiled.php(7815): IlluminateSessionMiddleware->handle(Object(IlluminateHttpRequest), 1, true)
#8 C:wampwwwtestbootstrapcompiled.php(7762): IlluminateCookieQueue->handle(Object(IlluminateHttpRequest), 1, true)
#9 C:wampwwwtestbootstrapcompiled.php(10768): IlluminateCookieGuard->handle(Object(IlluminateHttpRequest), 1, true)
#10 C:wampwwwtestbootstrapcompiled.php(640): StackStackedHttpKernel->handle(Object(IlluminateHttpRequest))
#11 C:wampwwwtestpublicindex.php(49): IlluminateFoundationApplication->run()
#12 {main} [] []
je sais que cette question a été posée plusieurs fois. J'avais passé par de nombreux fils pertinents, mais ne peut pas comprendre solution.
5 réponses
NotFoundHttpException
exception dans Laravel signifie toujours qu'il n'était pas en mesure de trouver un routeurURL. Et dans votre cas, c'est probablement un problème dans la configuration de votre serveur web, la configuration d'un hôte virtuel (site), ou .configuration htaccess.
votre public/.htaccess devrait ressembler à ceci:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Comme vous pouvez le voir il est une condition dans la première ligne IfModule mod_rewrite.c
, donc si vous n'avez pas mode_rewrite installé ou activé, toutes les règles de réécriture échoue et ce
localhost/Test/public/
fonctionne correctement, mais pas ceci:
localhost/Test/public/test
En revanche, celui-ci devrait fonctionner aussi, parce que c'est sa forme brute:
localhost/Test/public/index.php/test
parce que Laravel a besoin d'être réécrit pour fonctionner.
Et notez que vous ne devriez pas utiliser /public, votre Url, comme ceci:
localhost/Test/
c'est un autre indice que la racine du document de votre hôte virtuel n'est pas correctement configurée ou pas pointant vers /var/www/Test / public, ou quelque soit le chemin dans lequel se trouve votre application.
Tout cela en supposant que vous utilisez Apache 2.
j'ai trouvé une autre situation où cette erreur peut se produire, et qu'on n'a rien à faire avec les réécritures, pour une fois. C'est une très méchante faute de frappe :)
j'ai eu:
Route::get('replicas/item/{id}/{?stub}', ['uses' => 'ProductReplicasController@productview', 'as' => 'database.replicas.productview']);
voir la {?stub}, qui a provoqué cette erreur avec moi, il doit être {stub?} bien sûr. Mais si vous êtes nouveau à Laravel (comme moi), c'est très facile à manquer et pourrait prendre un certain temps à comprendre. :)
je recevais la même exception d'erreur pendant qu'un projet fonctionnait mais un autre projet avec même .fichier htaccess sur le même localhost ne fonctionne pas. Il s'avère que puisque mon répertoire de projet a la lettre de capital en elle, URL devrait également être capital pour l'acheminement au travail. localhost/minorweb/public / account ne fonctionnait pas mais localhost/minorWeb/public / account avec un " W " de la capitale. donc, si rien ne semble résoudre le problème, vérifiez que votre URL correspond avec répertoire de projet avec cas.
utilisation:
Route::get('/performance/{$submit_type}/{$send_selected}/{$date_a}/{$date_b}', 'PerformanceController@calc');
au lieu de
Route::get('/performance/{submit_type}/{send_selected}/{date_a}/{date_b}', 'PerformanceController@calc');
Donc être vigilant lorsque vous utilisez {$trucs}
une autre chose à vérifier est votre racine de document,
le mien est:
www / var
et devrait être:
www/var/monsite/public
une Autre raison pour laquelle je déteste développement web