發表文章

目前顯示的是 8月, 2015的文章

3. Sentinel 2.0 用戶認證應用

安裝好 Sentinel 2.0 後,我們要來建立用戶的認證功能,包括註冊、登入、忘記密碼以及密碼重置,這部分改動的較大,請記得自己備份.... 我的權限群組可分為三種:系統管理員admin & 公司主管boss &公司員工user 員工的部分只要帳號有啟用就預設是user了,所以這部分暫時不理他,我們需要額外新增兩個role群組權限,來個別定義這兩個權限的內容。 首先,我們先到Kernel去註冊中介層的路由名稱,方便我們直接透過路由來限制存取。 開啟 app/Http/Kernel.php,新增admin & boss 的role權限 /** * The application's route middleware. * * @var array */ protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'admin' => \App\Http\Middleware\SentinelAdminAccess::class, 'boss' => \App\Http\Middleware\SentinelBossAccess::class, ]; 新增 app/Http/Middleware/SentinelAdminAccess.php <?php namespace App\Http\Middleware; use Closure; use Sentinel; class SentinelAdminAccess { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request

2. 新增自定義的全域函式(helpers function)

Laravel 定義了很多常用的全域變數,但如果我們想要自己定義的話,就須要靠這個來執行了,譬如每頁都會有專有的<h1>標題,若要每頁都寫的話,未免太麻煩!不如開一個views來專門顯示就好,所以需要定義一個Function來判斷目前頁面的別名,然後自動取得對應的標題名稱即可。 開啟 config/app.php /* * Application Service Providers... */ App\Providers\AppServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, App\Providers\HelperServiceProvider::class, 新增 app/Providers/HelperServiceProvider.php <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class HelperServiceProvider extends ServiceProvider { /** * Bootstrap the application services. * * @return void */ public function boot() { } /** * Register the application services. * * @return void */ public function register() { foreach (glob(app_path().'/Helpers/*.php') as $filename) {

1. 增加Email帳號驗證功能 Sentinel 2.0

安裝參考: SENTINEL BY CARTALYST 作者建議安裝這個套件前,最好將預設的資料表刪乾淨,所以千萬不要拿正式站的來玩! 清空資料庫: $ php artisan migrate:reset $ composer require cartalyst/sentinel "2.0.*" 如果怕玩掛的話,就先把migrations內的檔案都搬走做個備份。 開啟 config/applphp 'providers' => [ /* * Application Service Providers... */ App\Providers\AppServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, Cartalyst\Sentinel\Laravel\SentinelServiceProvider::class, ], 'aliases' => [ /* * Application Service Providers... */ 'Activation' => Cartalyst\Sentinel\Laravel\Facades\Activation::class, 'Reminder' => Cartalyst\Sentinel\Laravel\Facades\Reminder::class, 'Sentinel' => Cartalyst\Sentinel\Laravel\Facades\Sentinel::class, ], 下載設定檔及資料表文件 $ php artisan vendor:publish --provider="Cartalyst\Sentinel\Laravel\Sen

4. 安裝 Laravel debugbar

圖片
這個外掛主要是方便我們在除錯模式(debug=true)時,能夠簡易地看到目前送出的請求以及正在取用的版型(views)內容,在正式上線時不會用到。 安裝  barryvdh/laravel-debugbar $ composer require barryvdh/laravel-debugbar 開啟 config/app.php 'providers' => [ /* * Third Party Stuff */ Laravel\Socialite\SocialiteServiceProvider::class, Zizaco\Entrust\EntrustServiceProvider::class, Laracasts\Flash\FlashServiceProvider::class, Barryvdh\Debugbar\ServiceProvider::class, ], 'aliases' => [ /* * Third Party Stuff */ 'Socialite' => Laravel\Socialite\Facades\Socialite::class, 'Entrust' => Zizaco\Entrust\EntrustFacade::class, 'Flash' => Laracasts\Flash\Flash::class, 'Debugbar' => Barryvdh\Debugbar\Facade::class, ], 建立 debug 設定檔 $ php artisan vendor:publish Copied Directory [/vendor/laracasts/flash/src/views] To [/resources/views/vendor/flash] Copie

0. env 基礎設置

打開 .env 檔案,需要我們手動設定幾個參數 APP_KEY:如果此參數不存在或未加密的話,會造成安全性上的漏洞,可以手動去建置: $ php artisan key:generate Application key [yKMUPLKj3ps7bhOfcHURRVK9wFbXWjYS] set successfully. 然後當專案要上線時最好在跑一次這個參數,變更此值。 APP: 核心參數設定 APP_LOCALE=zh-TW APP_FALLBACK_LOCALE=zh-TW APP_TIMEZONE=Asia/Taipei DB: 資料庫設定 新增網站指定的資料庫類型 DB_CONNECTION=pgsql DB_HOST=localhost DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret DB_PREFIX=null MAIL: 設定郵件採用 gmail smtp 寄送 MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_ENCRYPTION=tls MAIL_USERNAME= your_mail@gmail.com MAIL_PASSWORD= your_password MAIL_FROM_ADDRESS= your_mail@gmail.com MAIL_FROM_NAME= from_name 設定完後存檔. 修改 config/app.php // 'timezone' => 'UTC', 'timezone' => env('APP_TIMEZONE', 'UTC'), // 'locale' => 'en', 'locale' => env('APP_LOCALE', 'en'), // 'fallback_lo