【開發記錄】前後端路由分離 及 Boostrap 後臺樣式的添加

目錄

上一篇文章做好了關於laravel ORM 的基礎工作,本篇文章將建立起一個簡單的後臺。(具體的登錄機制未做具體表述,下篇文章詳細講述)

路由文件分離

當前後端的路由添加了很多的時候,前後端路由寫在一起就非常的雜亂,
這個時候適當分離前後端路由配置文件時一個不錯的選擇。

找到 RouteServiceProvider

該文件屬於provider服務容器的一部分,在這裏註冊路由機制。

根據已有的 web 寫法 仿寫出 admin後臺的路由。
此處添加了kwi.php 爲 後端路由的配置文件。
並設置了後臺所有路由前綴爲 Kawhi 1: 。

namespace App\Providers;

use Illuminate\Support\Facades\Route;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

class RouteServiceProvider extends ServiceProvider
{
    /**
     * This namespace is applied to your controller routes.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = 'App\Http\Controllers';

    protected $AdminNameSpace = 'App\Http\Controllers\Admin';

    /**
     * Define your route model bindings, pattern filters, etc.
     *
     * @return void
     */
    public function boot()
    {
        //

        parent::boot();
    }

    /**
     * Define the routes for the application.
     *
     * @return void
     */
    public function map()
    {
        $this->mapApiRoutes();

        $this->mapWebRoutes();

        $this->mapAdminRoutes();

        //
    }

    /**
     * Define the "web" routes for the application.
     *
     * These routes all receive session state, CSRF protection, etc.
     *
     * @return void
     */
    protected function mapWebRoutes()
    {
        Route::middleware('web')
             ->namespace($this->namespace)
             ->group(base_path('routes/web.php'));
    }

    /**
     * Define the "api" routes for the application.
     *
     * These routes are typically stateless.
     *
     * @return void
     */
    protected function mapApiRoutes()
    {
        Route::prefix('api')
             ->middleware('api')
             ->namespace($this->namespace)
             ->group(base_path('routes/api.php'));
    }
    /**
     * Define the "api" routes for the application.
     *
     * These routes are typically stateless.
     *
     * @return void
     */
    protected function mapAdminRoutes()
    {
        Route::prefix('Kawhi')
             ->middleware('web')
             ->namespace($this->AdminNameSpace)
             ->group(base_path('routes/kwi.php'));
    }
}

路由文件編寫

路由的編寫,最好是根據具體業務名稱進行命名,而不是隨意命名。養成良好的命名規範還是非常有必要的。

Route::group([],function () {
    Route::get('login',['as' => 'admin.login','uses' => 'AuthController@login']);//登錄
    Route::post('login',['as' => 'admin.dologin','uses' => 'AuthController@doLogin']);//執行登錄
    Route::get('logout',['as' => 'admin.logout','uses' => 'AuthController@logout']);//退出登錄

    Route::get('404',['as' => 'admin.error.404','uses' => 'ErrorController@error404Action']);//404
    Route::get('500',['as' => 'admin.error.500','uses' => 'ErrorController@error500Action']);//500

});
Route::group(['middleware' =>  ['adminAuthenticate']], function () {
    Route::get('/','AdminIndexController@index','admin.index');
    // Route::resource();
});

控制器的創建

根據自己編寫的路由去添加控制器文件。
對每一個自己編寫的函數添加註釋,即使是最簡單的註釋也要養成良好的習慣。
命名空間根據自己剛纔在 provider 裏設置的要保持一致。
test.domain.com/Kawhi 測試路徑便是指向到如下的控制器


namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Admin\BaseController;
use Illuminate\Http\Request;

class AdminIndexController extends  BaseController
{
    protected $request;

    public function __construct(Request $request)
    {
        $this->request = $request;
    }
    /**
     * 後臺
     * */
    public function index(){
        return view('Admin.index');
    }

導入樣式文件

在資源共享的互聯上找到了 inspire_admin 這個原創 Bootstrap 後臺樣式。
把樣式文件導入到public下,這裏是最後執行的地方。(還沒搞明白怎麼在resource 下 添加,然後編譯自己更新到這裏)

資源文件的位置都在這裏了。
資源文件的位置
這是展示的效果。
這裏寫圖片描述


  1. 博主較喜歡的一個NBA球員 卡哇伊[科懷·萊昂納德],各位看官可以隨意設置自己喜歡的前綴。非商業用途,取名隨意。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章