1. 程式人生 > >一個樣例學會tp5控制器的基本使用/tp5前置操作/tp5控制器初始化/tp5空操作/tp5跳轉和重定向

一個樣例學會tp5控制器的基本使用/tp5前置操作/tp5控制器初始化/tp5空操作/tp5跳轉和重定向

tp5控制器

一個樣例明白控制器的定義及使用

<?php

namespace app\index\controller;

use think\Controller;

/**
 * Class User
 * @package app\index\controller
 * @author weiyongqiang <[email protected]>
 * 其實tp5中可以不整合Controller但是我們使用了Controller中的方法所以要整合
 */
class User extends Controller
{
    /**
     * @var
array * 我來定義前置操作,所謂前置操作就是在我配置的操作執行之前執行我 */
protected $beforeActionList = [ 'checksession', //在任何操作執行前執行checksession方法 'islogin' => ['except'=>'login'], //在除login之外的其他方法執行前先執行islogin方法 'removesession' => ['only'=>'logout'], //在logout執行前先執行removesession
]; /** * @param $name * 如果在本控制器中找不到該操作那就執行我 */ public function _empty($name) { echo $name.'這個操作不存在'; } /** * 我是控制器初始化方法,執行此控制器的任何操作之前必須先執行我 */ public function _initialize() { Logs::write(time().'訪問'.$_SERVER['PHP_SELF']); } /** * @return
bool * 我是前置操作 */
public function checksession() { return empty(session('USERINFO')); } /** * @return bool * 我是前置操作 */ public function islogin() { $userInfo = session('USERINFO'); return $userInfo.expires > time(); } /** * @return bool * 我是前置操作 */ public function removesession() { return session('USERINFO', null); } /** * 使用者登入操作 */ public function login() { if(使用者已經登入了){ $this->redirect('Home/index', 302); //或者使用助手函式 //redirect('Home/index'); } if(使用者資訊沒有問題){ $this->success('登入成功', 'Home/index'); }else{ $this->success('出錯了請稍後再試'); } } /** * 使用者退出操作 */ public function logout() { redirect('Home/index'); } }

以上樣例中涉及到的知識有:
1. 控制器的定義
2. 控制器的初始化方法:_initialize()
3. 前置操作: 配置protected $beforActionList
4. 跳轉和重定向:success和error重定向為redirect
5. 空操作:_empty()當你訪問的方法不存在時就執行

關於以上的特性大家可以在使用中得到更為深刻的認識。

相關推薦

一個樣學會tp5控制器基本使用/tp5前置操作/tp5控制器初始/tp5操作/tp5定向

tp5控制器 一個樣例明白控制器的定義及使用 <?php namespace app\index\controller; use think\Controller; /*

tp5控制器基本使用/tp5前置操作/tp5控制器初始/tp5操作/tp5定向

tp5控制器 <?php namespace app\index\controller; use think\Controller; /** * Class User * @package app\index\controller * @author w

Ubuntu的基本用法:常用指令,控制流程定向

常用指令 接下來我將舉例闡述以下常用的基本指令: /!\ 記住要正確的按照下面寫的輸入,後面還得帶上回車鍵! 查詢檔案列表 [email protected]:~ $ ls file1.txt file2.pdf file3.mp3 file1.pdf another_fi

React Native中Navigator的基本使用,實現簡單的頁面之間的頁面資料傳遞

效果如下:很簡單的例子,大佬勿噴啊...           點選檢視多少錢後,自動跳轉到超市頁面,點選回答價格後,自動跳轉回顧客介面,並傳遞引數回去。   在我使用的0.57.0的版本中,Navigator已被移除,

jsp的基本語法——請求轉發定向

jsp的基本語法: 1. jsp表示式:提供一種方式,可直接讓Java變數或表示式的計算輸出到客戶端的簡化方式,它將要輸出的變數   或表示式直接封裝在<%= %>中。 2.方法:   Object setAttribute(String name):獲取指定的屬性   Enumertion ge

Linux檔案壓縮,管道定向

1, 練習並熟練掌握Linux下常見壓縮格式 tar.bz2和tar.gz的壓縮與解壓縮; 並各給出壓縮與解壓縮例項;[[email protected] dir]$ tar -zcvf ./

為什麼在單類中不能使用雙重檢查鎖來初始物件

在網上看到過好多篇文章在說明雙重檢查鎖在多個執行緒初始化一個單例類時到底為什麼不行時在關鍵位置的描述模稜兩可,今天我們就來看一下為什麼不能用雙重檢查鎖,問題到底出在了那裡? 下面我們直接進入主題,為什麼使用雙重檢查鎖,原因是因為在多執行緒初始化一個單例類時我們要確保得到一

tp5中,模板、控制器、js的url方法

false header type 控制 lang dex RM ext TP $this->redirect(‘/Supperman/outerMan‘);$this->display(‘Supperman:outerMan‘);這兩者都只是在當前頁面打開新的

tp5tp5實現模塊、控制器操作的頁面404

die img not row header 分享 exc exce app 1、這裏只講tp5(5.0.18)的空模塊跳轉,空控制器和空操作官網有。 來個正確的空模塊處理吧: 首先找到think\App.php,備份,然後修改: 找到【throw new HttpExc

TP5.1】模板獲取不到控制器assign的值

author:咔咔 wechat:fangkangfk   總結:所以說基類跟控制器要是都有initialize方法,那麼控制器是獲取不到值的,那解決方案就來了。控制器的初始化是不能取的,那麼就改基類,基類使用建構函式就OK了   https://blog

tp5 圖片上傳後 按照當前控制器/年份/月份日期 新建檔案

按照要求的話  有兩種解決方法 1-當前控制器中的圖片上傳的方法 $info = $file->move(ROOT_PATH . 'public' . DS . 'upload' . DS .

通過composer 安裝 tp5 並通過命令列建立一個控制器

首先開啟命令列將檔案目錄切換到要安裝Tp5的目錄下執行composer create-project topthink/think tp5 dev-master --prefer-dist得到此時TP5就安裝成功了 將目錄切換到TP5目錄裡執行 PHP think make:

講解webpack的基本使用第二篇

文件的 分享 fig .com size 如何 try 基本 bpa 這一篇來講解一下如何設置webpack的配置文件webpack.config.js 我們新建一個webpack-demo的項目文件夾,然後安裝webpack 執行如下命令 在項目文件夾下,

講解webpack的基本使用第三篇

ont conf logs .config 結合 pac sta 現在 fig 這一篇來講解一下webpack的htmlWebpackHtml插件的使用。 先來思考一個實際問題:我們現在在index.html引用的js文件是寫死的。但是我們每次打包後的文件都是動態的,那麽

講解webpack的基本使用第四篇

load prefix fig 圖片 onf com 引用 下載 基本 這一篇來講解一下webpack的loader的使用,用webpack打包文件,css,img,icon等都需要下載安裝對應的loader文件,並且寫好配置項,才可以進行打包,廢話不多說,直接開始實戰。

一個樣看清楚JQuery子元素選擇器children()find()的差別

csdn 連接 網絡 type 文章 java main on() track 近期在我們的hybrid app項目開發中定位出了一個問題。通過這個問題了解下JQuery選擇器find()和children()的差別。問題是這種:我們的混合app是一個單頁面應用(mai

thinkphp5.1 tp5.1 安裝 初始 配置 重寫 url 路由 Rewrite

porting index blog 文檔 link php 默認 gin ews 下面是thinkphp5.1 官方文檔給出的配置,可能不好使 .htaccess改成下面親測可用 <IfModule mod_rewrite.c> Option

TinkPHP框架學習-02控制器基本操作

ffffff 換行 lin type emp 定義 select cor 新建                   1-----創建控制器                   2-----訪問視圖頁面                   3-----註冊變量到視

框架之TP5 頁面 / 以及url地址

<a href=">路由跳轉 tp框架跳轉需要用{}包住 裡面加上冒號(:) 括號中('控制器名稱/方法名稱') <a href="{:url('Login/xian')}">新增</a>   頁面訪問url地址  url

TP5專案放在二級目錄下定向訪問不對問題

最近用Thinkphp5做了一個小網站,發現當PHP版本切換成5.5以上版本後 如果訪問地址是全地址 如loacalhost/index/index/index重定向不起作用,提示:No input file specified. 此問題比較好解決,原因是php版本5.5以上專案下的