日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

Thinkphp5.0快速入门笔记(2)

發布時間:2025/3/15 php 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Thinkphp5.0快速入门笔记(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

學習來源與說明

https://www.kancloud.cn/thinkphp/thinkphp5_quickstart

測試與部署均在windows10下進行學習。

?

示例建立新的模塊和控制器

在application模塊下,建立新的模塊,取名為new_controller,則建立新的文件夾,取名new_controller,然后在之下建立文件夾controller,模塊在controller之下創建,建立模塊blog,則創建Blog.php如圖所示。

Blog.php中的內容如下:

<?php namespace app\new_controller\controller; class Blog {public function get($id=10){return '查看id=' . $id . '的內容';}public function read($name){return '查看name=' . $name . '的內容';}public function archive($year, $month){return '查看' . $year . '/' . $month . '的歸檔內容';} }

其中的namespace app\new_controller\controller中,new_controller和創建的模塊(目錄)一致,

其中的class Blog中,Blog控制器和創建的文件Blog.php一致。

控制器中可訪問的方法即為public function部分。

?

ThinkPHP的URL訪問

URL訪問的完整路徑為:

http://serverName/index.php/模塊/控制器/操作

例如訪問:http://127.0.0.1/index.php/new_controller/blog/get/id/4(和上一段中的配置有關系)

另外說明:控制器和操作名不區分大小寫。如:http://127.0.0.1/index.php/new_controller/BLOG/GET/Id是合法的。

可設置:如果希望嚴格區分大小寫訪問。// 關閉URL自動轉換(支持駝峰訪問控制器)'url_convert' => false(application中的config.php)

?

URL傳遞參數

訪問:http://127.0.0.1/index.php/new_controller/blog/get/id/4

對應到了new_controller模塊,blog控制器,get方法,id參數設置為4進行傳遞。

效果如下:(不傳遞參數默認id10傳遞)

訪問:http://127.0.0.1/index.php/new_controller/blog/archive/year/2019/month/12兩個參數傳遞。

當設置application下的config.php文件中的約92行處的url_param_type為1,則參數傳遞變為:http://127.0.0.1/index.php/new_controller/BLOG/Archive/2019/12。

效果如下:

?

隱藏URL中的index.php

原始地址為:http://serverName/index.php/模塊/控制器/操作。這里的index.php是指代根目錄中public下的index.php文件,其內容指定了application路徑

隱藏index.php是否需要,可以先試試直接去掉index.php,如:http://127.0.0.1/new_controller/blog/archive/year/2019/month/12,訪問成功則OK。

而入門教程中認為:在apache中,需要.htaccess 文件下寫入以下代碼完成:(其它的類型的都在教程里了)

<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>

URL路由縮減

在application下的route.php定義了路由信息,如修改其為如下:

<?php return ['__pattern__' => ['name' => '\w+',],'[hello]' => [':id' => ['index/hello', ['method' => 'get'], ['id' => '\d+']],':name' => ['index/hello', ['method' => 'post']],],'blog/:id' => 'new_controller/blog/get/', ];

即增加了一行路由信息,那么訪問:http://127.0.0.1/blog/123,即等價于訪問:http://127.0.0.1/new_controller/blog/get/id/123。效果如下:

?

更改以上代碼中第10行為:

'blog/[:id]' => 'new_controller/blog/get/',

則id參數的傳遞可以成為可選,則訪問地址http://127.0.0.1/blog/正常輸出不報錯,否則報錯。

針對index模塊(以上都在說new_controller模塊),則路由中可以省略為:

'blog/[:id]' => '/blog/get/',

默認index模塊,直接寫了控制器。index/blog/get/

路由規則

如:'hello/[:name]' => ['index/hello', ['method' => 'get', 'ext' => 'html']],

定義了路由規則限制了必須是get 請求,而且后綴必須是html 的,

路由簡化

相同的部分路由可以簡化,如以下路由信息:

'[blog]' => [ ':year/:month' => ['blog/archive', ['method' => 'get'], ['year' => '\d{4}', 'month' => '\d{2}']], ':id' => ['blog/get', ['method' => 'get'], ['id' => '\d+']], ':name' => ['blog/read', ['method' => 'get'], ['name' => '\w+']], ],

?

可以簡化為:

'[blog]' => [ ':year/:month' => ['blog/archive', ['method' => 'get'], ['year' => '\d{4}', 'month' => '\d{2}']], ':id' => ['blog/get', ['method' => 'get'], ['id' => '\d+']], ':name' => ['blog/read', ['method' => 'get'], ['name' => '\w+']], ],

?

其它

在__pattern__ 中定義的變量規則我們稱之為全局變量規則,

同時定義了全局規則和局部規則的話,當前的局部規則會覆蓋全局規則

剩余復雜路由見說明書。

?

轉載于:https://www.cnblogs.com/bai2018/p/11301938.html

總結

以上是生活随笔為你收集整理的Thinkphp5.0快速入门笔记(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。