Laravel: Route [utilisateurs.edit] non défini
J'ai créé une application démo dans Laravel 4, pour une expérience d'apprentissage. L'routes.php est comme suit:
Route::get('/', function()
{
return View::make('hello');
});
Route::group(['prefix' => 'users', 'before' => 'auth'], function () {
Route::get('dashboard', function () {
$layout = View::make('users.dashboard');
$layout->title = "Dashboard";
$layout->content = View::make('users.dashboard');
return $layout;
});
Route::get('/all/', [ 'as' => 'users.index', 'uses' => 'UserController@all']);
Route::get('/create/', [ 'as' => 'users.create', 'uses' => 'UserController@create']);
Route::get('users/login', [ 'as' => 'users.login', 'uses' => 'UserController@getLogin']);
Route::post('users/login', [ 'as' => 'users.login', 'uses' => 'UserController@postSignin']);
Route::get('users/logout', [ 'as' => 'users.logout', 'uses' => 'UserController@getLogout']);
Route::resource('/','UserController');
});
Route::controller('users', 'UserController');
Ici, je le préfixe "utilisateurs". Cependant, en Essayant de vous connecter avec/sortie les informations de connexion correctes, il ne montre que la page de connexion au lieu d'afficher le message d'erreur sur la page de connexion ou le tableau de bord.
Toute suggestion? Pour info,
L'index.blade.php dans l'app\views\users est ci-dessous:
@extends('users.user')
@section('title', 'User Listing Page')
@section('description', 'This is the user listing page')
@section('main')
<h1>All Users</h1>
<p>{{ link_to_route('users.create', 'Add new user') }}</p>
<h1>Login</h1>
<p>{{ link_to_route('users.login', 'Login') }}</p>
<table>
<tr>
<td>{{ $users->links() }}</td>
</tr>
</table>
@if ($users->count())
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Username</th>
<th>Email</th>
<th>Phone</th>
<th>Name</th>
</tr>
</thead>
<tbody>
@foreach ($users as $user)
<tr>
<td>{{ $user->username }}</td>
<td>{{ $user->email }}</td>
<td>{{ $user->phone }}</td>
<td>{{ $user->name }}</td>
<td>{{ link_to_route('users.edit', 'Edit', array($user->id), array('class' => 'btn btn-info')) }}</td>
<td>{{ Form::open(array('method' => 'DELETE', 'route' => array('users.destroy', $user->id))) }}
{{ Form::submit('Delete', array('class' => 'btn btn-danger')) }}
{{ Form::close() }}
</td>
</tr>
@endforeach
</tbody>
</table>
<table>
<tr>
<td>{{ $users->links() }}</td>
</tr>
</table>
@else
There are no users
@endif
@stop
Le script login.blade.php (sur le même emplacement que ci-dessus) comme suit:
@extends('users.user')
@section('main')
<h1>Login</h1>
{{ Form::open(array('route' => 'users.login')) }}
<ul>
<li>
{{ Form::label('username', 'Username:') }}
{{ Form::text('username') }}
</li>
<li>
{{ Form::label('password', 'Password:') }}
{{ Form::password('password') }}
</li>
<li>
{{ Form::submit('Submit', array('class' => 'btn')) }}
</li>
</ul>
{{ Form::close() }}
@if ($errors->any())
<ul>
{{ implode('', $errors->all('<li class="error">:message</li>')) }}
</ul>
@endif
@stop
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de
users.edit
route définie dans votreroutes
fichier. Donc, vous êtes lié pour recevoir cette erreur. Il n'y a pas d'utilisateurs.modifier l'itinéraire dans votre code.Ajouter la suivante route quelque part dans votre fichier de routes et l'erreur devrait disparaître:
Note: Vous devez remplacer le contrôleur nom de la méthode
edit
à ce que vous avez définis.Mise à JOUR de 1
C'est parce que, vous avez
'before' => 'auth'
paramètre passé dans votreRoute::group()
méthode. Juste enleverusers
deedit
route et j'espère que devrait faire le travail pour vous.Juste Une note de Côté
Je présume que vous êtes nouveau dans laravel et ont moins d'expérience avec le framework. Je vous recommande d'aller avec cela seulement afin d'obtenir vos mains sales avec les bases. Ensuite, une fois que vous commencer à gagner de l'expérience et de savoir comment les choses fonctionnent dans les coulisses, vous pouvez sauter au prochain niveau.
Si j'étais à votre place, je ne serais pas allé avec le code que vous avez fournis, à la place je l'aurait laissé trop simple pour l'instant. Mon
routes.php
fichier devrait ressembler à ceci:Et ensuite dans votre fichier de vue:
Alors, j'aurais utilisé le middleware seulement à l'intérieur de la
UserSessionsController
fichier comme ceci:Mise à JOUR 2:
En savoir plus sur le middleware depuis les liens suivants:
Pour la version: 5
Pour la version: 5.1
Pour la version: 5.2
Espère que cela vous aide. Heureux De Codage. Des acclamations.