Laravel 4, à l'exception du filtre dans le contrôleur de constructeur
Actuellement, j'ai un AdminContoller avec une construction de la méthode de la manipulation des avant de filtres. Est-il un moyen de faire un avant de filtre sur toutes les méthodes de contrôleur à l'exception d'un seul?
Je suis l'aide de Confier les Rôles et les Autorisations, mais ce code est en me jetant dans un infini de redirection en boucle. Je ne suis pas connecté en tant qu'utilisateur. Donc, ce code doit me diriger vers le /admin/url de connexion qui est attaché à un non filtrée AdminController@adminLogin méthode. Mais il n'en a pas?
//AdminController.php fichier
class AdminController extends BaseController {
function __construct() {
//Is something like this possible?
$this->beforeFilter('admin', array('except' => array('adminLogin')));
$this->beforeFilter('csrf', array('on' => 'post'));
}
public function index()
{
return "Admin - Index";
}
public function adminLogin()
{
return "Admin Login Form";
}
//... and many more methods
}
//Filter.php fichier
Route::filter('admin', function()
{
if( !Entrust::hasRole('admin') ) //Checks the current user
{
return Redirect::to('/admin/login');
}
});
//Routes.php fichier
Route::resource('admin', 'AdminController');
Route::get('/admin/login', 'AdminController@adminLogin');
OriginalL'auteur JasonMortonNZ | 2013-06-12
Vous devez vous connecter pour publier un commentaire.
Que vous avez ajouté une nouvelle méthode dans un ingénieux contrôleur, vous devez vous inscrire à la nouvelle méthode d'abord, avant de la ressource.
E. g.
De cette façon, votre filtre avant devrait fonctionner comme vous l'avez ensuite comme ceci:
OriginalL'auteur Thomas Clarkson
Oui, c'est possible, car il y a un
public $except;
etpublic $only;
propriété dansFilter
classe dansvendor/laravel/framework/src/Illuminate/Routing/Controllers/Filter.php
fichier et vous pouvez également utiliseronly
au lieu deexcept
pour utiliser un filtre uniquement sur des méthodes spécifiques.De
L4
docs pouronly
Donc, cela devrait fonctionner aussi
Dans
L3
j'ai utilisémais ne pas l'utiliser dans
L4
mais il doit travailler, selon le code source et le doc.OriginalL'auteur The Alpha