第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php laravel中auth自動生成的登錄頁源碼有一處不懂(中間件)

php laravel中auth自動生成的登錄頁源碼有一處不懂(中間件)

PHP
EnzoLiu 2017-01-13 03:26:25
我用 php artisan make:auth生成了一個登錄注冊的模塊我分析源碼的時候 發(fā)現(xiàn) app\Http\Controllers\Auth\LoginController.php內(nèi)存在這樣一段代碼:????public?function?__construct() ????{ ????????$this->middleware('guest',?['except'?=>?'logout']); ????}我看到$this->middleware代碼后先是一愣... ?后來在網(wǎng)上找到資料原來這是使用了一個中間件但我對后面的['except' => 'logout']); 實在不懂,尋求大神給予講解一下。另外:except是源碼里自己定義的 還是laravel自帶的?
查看完整描述

2 回答

已采納
?
流逝在指尖活在當下

TA貢獻4條經(jīng)驗 獲得超1個贊

這個是laravel框架里面自帶的,中間件就是控制用戶是否能訪問的一種機制。

在文件?vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php 77行

????/**
?????*?Determine?if?the?given?options?exclude?a?particular?method.
?????*
?????*?@param??string??$method
?????*?@param??array??$options
?????*?@return?bool
?????*/
????protected?static?function?methodExcludedByOptions($method,?array?$options)
????{
????????return?(isset($options['only'])?&&?!?in_array($method,?(array)?$options['only']))?||
????????????(!?empty($options['except'])?&&?in_array($method,?(array)?$options['except']));
????}
  • 在Controller設(shè)置中間件的時候可以設(shè)置:?only?針對某個方法添加中間件,或者?except?除了這個方法之外的方法都添加中間件

methodExcludedByOptions 方法是判斷是否在這個方法中使用中間件,返回值是布爾值 true使用中間件,false不使用中間件


排除特定的方法不使用中間件

$this->middleware('guest:admin',?['except'?=>?'login']);

在指定的方法中使用中間件

$this->middleware('guest:admin',?['except'?=>?'logout']);

推薦將中間件寫在路由中

Route::get('logout',?'AuthController@logout')->middleware('auth:admin');


查看完整回答
反對 回復(fù) 2017-01-17
?
慕先生7847717

TA貢獻1條經(jīng)驗 獲得超0個贊

出去,退出登錄這個請求不需要,驗證

查看完整回答
反對 回復(fù) 2017-08-27
  • 2 回答
  • 0 關(guān)注
  • 4776 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號