Laravel : la Méthode [afficher] n'existe pas
Lorsque vous essayez d'accéder à cette URL 'users/login" j'ai eu cette erreur, Voici mon code :
Vue users/login.blade.php :
<head>Sign in : </head>
<body>
{{ HTML::ul($errors->all()) }}
<?php echo Form::open(array('url' => 'users'));
echo '<div class="form-group">';
echo Form::label('username', 'User Name');
echo Form::text('ausername', null, array('class' => 'form-control'));
echo '</div>';
echo '<div class="form-group">';
echo Form::label('Password', 'Password');
echo Form::password('apassword', null, array('class' => 'form-control'));
echo '</div>';
echo Form::submit('Sign in', array('class' => 'btn btn-primary'));
echo Form::close();
?>
</body>
Contrôleur Usercontroller.php
<?php
class UserController extends BaseController {
public function index()
{
$users = User::all();
return View::make('users.index')
->with('users', $users);
}
public function create()
{
return View::make('users.create');
}
public function store()
{
$rules = array(
'username' => 'required|alpha_dash',
'password' => 'required|confirmed',
'name' => 'required|regex:/^[a-zA-Z][a-zA-Z ]*$/',
'email' => 'required|email|unique:users',
'country' => 'required'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return Redirect::to('users/create')
->withErrors($validator)
->withInput(Input::except('password'));
} else {
$user = new User;
$user->username = Input::get('username');
$user->password = Hash::make(Input::get('password'));
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->country = Input::get('country');
$user->save();
//redirect
Session::flash('message', 'Successfully created user!');
return Redirect::to('users');
}
}
public function login()
{
$reflector = new ReflectionClass("UserController");
$fn = $reflector->getFileName();
dd($fn);
return View::make('users.login');
}
public function authen()
{
if (Auth::attempt(array('username' => Input::get('ausername'), 'password' => Input::get('apassword'))))
{
return Redirect::intended('users');
}
}
}
et mon routes.php
<?php
Route::resource('users','UserController');
Route::get('users/login', 'UserController@login');
Route::get('/', function()
{
return View::make('hello');
});
est-il un itinéraire problème, je vous remercie pour l'aide
Je ne pense pas que vous avez besoin de définir ce que
il est utilisé pour charger d'autres points de vue et d'effectuer certaines opérations dans le contrôleur
Route::resource
route depuis je crois son seul utilisé pour les contrôleurs de détente. Ou est-ce un reste d'application?il est utilisé pour charger d'autres points de vue et d'effectuer certaines opérations dans le contrôleur
OriginalL'auteur Tarik Mokafih | 2014-04-08
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème que vous. Le problème se retrouve avec du réaménagement de la ressource de code, c'est à dire
Il vérifie l'autre du possible, gestionnaire, si rien ne permettra d'atteindre la dernière ligne qui est des ressources pour gérer la page d'index.
OriginalL'auteur Frederick Li
Celui-ci:
définit les itinéraires suivants:
Donc URI users/login appels des utilisateurs.afficher l'itinéraire et c'est ça le problème.
Solution est comme Kryten dit de supprimer l'itinéraire complètement, mais je suppose que vous souhaitez utiliser certaines de ces routes de la ressource, comme dans votre contrôleur (créer, de stocker, de l'index), afin de mieux utiliser ce:
user.index
seraituser.about
comment faire?vous ne voudriez pas faire, il suffit de créer explicitement si vous avez besoin de personnaliser les parcours.
OriginalL'auteur Jarek Tkaczyk
Le problème liste avec les
Route::resource
appel. En incluant cette déclaration, vous dites à Laravel que vous souhaitez utiliser une bonne contrôleur pour les chemins qui commencent parusers
. Cela signifie que lorsque vous appuyez sur l'URL "users/login', le repos contrôleur qui interprète comme un "spectacle" action pour leuser
contrôleur et échoue, car il n'y a pas deshow
méthode. Voir http://laravel.com/docs/controllers#resource-controllers pour plus de détails - le tableau sur cette page explique quelles sont les routes sont automatiquement configurés lors de l'implémentation d'un contrôleur de ressources.La solution est de supprimer
Route::resource('users','UserController');
.La documentation donne des détails sur la façon de mettre en œuvre des méthodes spécifiques pour le repos de contrôleur.
OriginalL'auteur Kryten
Ajouter l'itinéraire personnalisé avant de les itinéraires des ressources dans votre fichier de routes.
Comme par Laravel documentation:
OriginalL'auteur Alex
La solution la plus simple est celle que je viens de trouver après la lecture de votre question. Définir votre
::resource
routes après tout::get
ou::post
routes. Je viens de tester sur la 4.2, et ça fonctionne (après avoir eu le même problème).OriginalL'auteur Qwiso
J'ai eu le même problème mais c'était bizarre. Dans mon fichier de routes, j'ai eu:
Quand je l'ai changé pour:
Que tout allait bien et je n'ai pas eu l'erreur à nouveau. Je ne suis pas sûr mais il semble que certains problème de dénomination.
OriginalL'auteur Fraz Ahmed
J'ai aussi connu le même problème mais j'ai trouvé ça très bête et stupide erreur, une utilisation route comme ceci : -
et de votre point de vue d'un contrôleur ou d'utiliser route('userLogin'); pour la route à cette fonction spécifique dans votre contrôleur
OriginalL'auteur Devil Inside