Questa è davvero una grande domanda e una risposta non può coprire tutto ciò che riguarda le migliori pratiche per i controller di amministratore o di gestione del back-end, ma ci sono alcuni concetti di base per la costruzione di un Admin Panel
:
// Keep all of your admin routes inside something like this
Route::group(array('prefix'=> 'admin', 'before' => 'auth.admin'), function() {
// Show Dashboard (url: http://yoursite.com/admin)
Route::get('/', array('uses' => 'Admin\\[email protected]', 'as' => 'admin.home'));
// Resource Controller for user management, nested so it needs to be relative
Route::resource('users', 'Admin\\UserController');
});
// Other routes (Non-Admin)
Route::get('login', array('uses' => '[email protected]' 'as' => 'login'));
Utilizzando un prefix
è possibile separare tutti i percorsi di amministrazione il cui prefisso url
verrà prefisso con admin
quindi, se si dispone di un controller users
per la gestione utenti nel back end, sarà url
prefisso con admin
, ovvero site.com/admin/users
. Anche utilizzando un filtro before
Si possono aggiungere autenticazione per tutti i controller di amministrazione in un posto, che significa, per accedere a tutti i tuoi utenti controllori di amministrazione deve essere registrato e il filtro potrebbe essere qualcosa di simile:
Route::filter('auth.admin', function($route, $request, $args){
// Check if the user is logged in, if not redirect to login url
if (Auth::guest()) return Redirect::guest('login');
// Check user type admin/general etc
if (Auth::user()->type != 'admin') return Redirect::to('/'); // home
});
Per , CRUD (Crea, Leggi, Aggiorna, Elimina) usa un resourceful controller, ad esempio, lo UserController
in un esempio di dichiarazione di rotta piena di risorse.
Utilizzare classi di repository (modello di repository) per il disaccoppiamento delle dipendenze, leggere this article.
Utilizzare sempre un percorso denominato, ad es.array('as' => 'routename', 'uses' => '[email protected]')
, questo è un esempio di denominazione di un percorso. I percorsi denominati sono facili da consultare, ovvero return Redirect::route('admin.home')
reindirizzerà a site.com/admin
perché abbiamo utilizzato admin.home
in as
per assegnare il nome per quella rotta.
controller Conservare amministrazione in una cartella separata e utilizzare un namespace
per esempio, Admin\\[email protected]
regolatore dovrebbero essere in app/controllers/admin
e il controller DashBoardController
dovrebbe essere simile a questo:
<?php namespace Admin;
class DashBoardController extends \BaseController {
public function index()
{
//...
}
}
Ci sono più, ma è abbastanza per cominciare, leggere gli articoli online e leggere lo documentation.
Questo può aiutare: http://www.packtpub.com/article/laravel4-creating-a-simple-crud-application-in-hours – HeroFTime