<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ### 初始化 [TOC=4,6] ThinkPHP5提供了更簡便的模塊初始化操作,在以往的版本您需要首先定義一個本控制器的父類,然后在父類中定義初始化操作,而現在,您只需要在模塊的當前控制器中寫一個初始化的方法,就可以完成初始化操作了。具體到我們的項目,我們需要在學生模塊的每個界面均顯示學生的信息。所以這個操作可以交給模塊的初始化方法來完成。 >[warning] 無論訪問該控制器下的哪個方法,都會首先運行初始化方法。 學生模塊的所有控制器方法都位于 application/index/controller/student.php文件中,其初始化控方法代碼如下: #### 初始化代碼 ~~~ namespace app\index\controller; use think\Controller; use app\model\Student as StuModel; use app\model\Task as TaskModel; use app\model\Submit as SubmitModel; use think\Request;//用于Session讀取 use think\Session; class Student extends Controller{ public function _initialize() { $request=$this->request; //初始化的時候檢查 用戶權限 if(null==$request->session('stuno')||$request->session('stuno')=='') { $this->error("您沒有該頁的訪問權限!",url('./account/login')); exit; }else { $stuno=$request->session('stuno'); $stu=StuModel::get(['stu_no'=>$stuno]); $this->stuid=$stu['stu_id']; $this->new_task_number=$stu['new_task_number']; $this->assign('stuid',$stu['stu_id']); $this->assign('stuno',$stu['stu_no']); $this->assign('stuname',$stu['stu_name']); //左側默認無active菜單 $this->assign('index',''); $this->assign('newtasks',''); $this->assign('account',''); $this->assign('num',$this->new_task_number); } } ~~~ #### 代碼分析 1、檢查用戶權限,拒絕非法登錄 當用戶通過登錄界面登錄系統后會在Session中存放響應的用戶身份標識,在初始化程序中要檢測相應的標識是否存在。 >[warning] 在ThinkPHP以前的版本中,可以通過$_SESSION直接操作Session變量,而在ThinkPHP5中為了安全起見將Session封裝在了請求對象Request中,所以需要通過實例化Request來操作Session。更過關于Session的用法請參看官方教程。 2、給模板參數復制 前面講到過,Student模塊會用到視圖模板,模板變量的變量是需要在初始化的時候進行賦值的,比如學生的信息和未完成作業的數量。還需要將菜單的選中狀態都設置為未選中。設置模板參數中學生信息的過程如下: (1)通過Session中保存的學號信息查詢學生 (2)將學生的相關信息賦值給模板視圖變量。 這樣,無論我們訪問學生模板的任何方法,都會在視圖中顯示學生的信息,如下圖所示: ![](https://box.kancloud.cn/ef515b21cde0444851be1b43acc700e3_299x208.png) (ps:這里的頭像我們使用了默認的頭像,當然也可以在賬戶設置中添加上傳頭像的功能,將圖片路徑保存到Student中即可) >[info] 模板中的視圖變量往往在整個模塊中都有效,所以最適合在初始化方法中賦值。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看