1. 程式人生 > >ThinkPHP5 資源巢狀路由配置方法(可以根據需要實現多層巢狀)

ThinkPHP5 資源巢狀路由配置方法(可以根據需要實現多層巢狀)

use think\Route;
//資源巢狀路由配置方法(可以根據需要實現多層巢狀):
// 更改巢狀資源路由blogs資源的資源變數名為blog_id
Route::resource('blogs','index/Blog',['var'=>['blogs'=>'blog_id']]);//主表路由
// create GET http://contoso.org/blogs/create
// save   POST http://contoso.org/blogs
// edit   GET http://contoso.org/blogs/100/edit
// read   GET http://contoso.org/blogs/100
// update PUT http://contoso.org/blogs/100
// delete DELETE http://contoso.org/blogs/100
// index  GET http://contoso.org/blogs

Route::resource('blogs.comments','index/Comment',['var'=>['blogs'=>'blog_id']]);//從表路由
// create GET http://contoso.org/blogs/128/comments/create
// save   POST http://contoso.org/blogs/128/comments
// edit   GET http://contoso.org/blogs/128/comments/32/edit
// read   GET http://contoso.org/blogs/128/comments/32
// update PUT http://contoso.org/blogs/128/comments/32
// delete DELETE http://contoso.org/blogs/128/comments/32
// index  GET http://contoso.org/blogs/128/comments


// 主表路由生成的路由規則分別是:
// create GET  blogs/:blog_id/create
// save   POST blogs
// edit   GET  blogs/:blog_id/edit
// read   GET  blogs/:blog_id
// update PUT  blogs/:blog_id
// delete DELETE  blogs/:blog_id
// index  GET  blogs

// 從表路由生成的路由規則分別是:
// create GET  blogs/:blog_id/comments/create
// save   POST blogs/:blog_id/comments
// edit   GET  blogs/:blog_id/comments/:id/edit
// read   GET  blogs/:blog_id/comments/:id
// update PUT  blogs/:blog_id/comments/:id
// delete DELETE  blogs/:blog_id/comments/:id

// index  GET  blogs/:blog_id/comments

<?php

namespace app\index\controller;

use think\Controller;
use think\Request;

class Blog extends Controller
{
    /**
     * 顯示資源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        echo 'index';
    }

    /**
     * 顯示建立資源表單頁.
     *
     * @return \think\Response
     */
    public function create()
    {
        echo 'create';
    }

    /**
     * 儲存新建的資源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        echo 'save';
    }

    /**
     * 顯示指定的資源
     *
     * @param  int  $blog_id
     * @return \think\Response
     */
    public function read($blog_id)
    {
        echo 'read'.' '.$blog_id;
    }

    /**
     * 顯示編輯資源表單頁.
     *
     * @param  int  $blog_id
     * @return \think\Response
     */
    public function edit($blog_id)
    {
        echo 'edit'.' '.$blog_id;
    }

    /**
     * 儲存更新的資源
     *
     * @param  \think\Request  $request
     * @param  int  $blog_id
     * @return \think\Response
     */
    public function update(Request $request, $blog_id)
    {
        echo 'update'.' '.$blog_id;
    }

    /**
     * 刪除指定資源
     *
     * @param  int  $blog_id
     * @return \think\Response
     */
    public function delete($blog_id)
    {
        echo 'delete'.' '.$blog_id;
    }
}


<?php
namespace app\index\controller;
use think\Controller;
use think\Request;

class Comment extends Controller
{
    public function create($blog_id)
    {
        echo 'method is create, this is a Comment'.' blog_id='.$blog_id;
    }
    public function save(Request $request,$blog_id)
    {
        echo 'method is save, this is a Comment'.' blog_id='.$blog_id;
    }
    public function read($id, $blog_id)
    {
        echo 'method is read, this is a Comment'.' id ='.$id.' blog_id='.$blog_id;
    }

    public function edit($id, $blog_id)
    {
        echo 'method is edit, this is a Comment'.' id ='.$id.' blog_id='.$blog_id;
    }
    
    public function update(Request $request, $id, $blog_id)
    {
        echo 'method is update, this is a Comment'.' id ='.$id.' blog_id='.$blog_id;
    }
    public function delete($id, $blog_id)
    {
        echo 'method is delete, this is a Comment'.' id ='.$id.' blog_id='.$blog_id;
    }
    public function index($blog_id)
    {
        echo 'method is index, this is a Comment'.' blog_id='.$blog_id;
    }
}

相關推薦

ThinkPHP5 資源分組路由配置方法(可以根據需要實現,注意:資源分組路由配置順序依次是層次遞減)

use think\Route; //資源巢狀分組路由配置方法(可以根據需要實現多層巢狀,注意:分組路由配置順序依次是巢狀層次遞減): // 更改巢狀資源路由blogs資源的資源變數名為blog_id //從表路由(分組路由配置順序必須是從表路由優先配置,否則從表路由一

ThinkPHP5 資源路由配置方法(可以根據需要實現)

use think\Route; //資源巢狀路由配置方法(可以根據需要實現多層巢狀): // 更改巢狀資源路由blogs資源的資源變數名為blog_id Route::resource('blogs','index/Blog',['var'=>['blogs'=&g

Python遞迴實現dict遍歷例項--三級選單/多級選單功能

要求:構建一個三(N)級選單,實現使用者可以根據指示選擇進入選單,退出選單,返回上層選單功能。知識點:dict資料的遍歷方法,遞迴遍歷方法。環境:Python3.6實現程式碼:#!/usr/bin/evn python # -*-coding:utf8 -*- class m

vue路由與404重定向實現方法分析

第一部分: vue巢狀路由 巢狀路由是什麼? 巢狀路由就是在一個被路由過來的頁面下可以繼續使用路由,巢狀也就是路由中的路由的意思。 比如在vue中,我們如果不使用巢狀路由,那麼只有一個<router-view>,但是如果使用,那麼在一個元件中就還有<router-view>,這也就構

第3篇:angularJS使用ui-router的路由配置

引入js檔案: <script type="text/javascript" src="lib/angular/angular-1.3.0.js"></script>

python 跳轉的方法

#跳轉 #Python 不支援 goto 和 label,想要在多層巢狀迴圈中跳轉,稍稍有些麻煩。最簡單的做法 #是設定跳轉標誌,並在相應位置檢查。 def test(): stop = False while True: while Tru

迴圈取的JsonArray中的值,最後一可以是JsonArray也可以是jsonObject

/** * @param jsonStr json字串 * @param key 具體取值上一級對應的所有的 Key * @param value 具體取值對應的所有的key * @param type type 是最後一個key對應的是array還是jsonObject

php程式設計中require和include導致檔案找不到的錯誤

php中include和require可以包含其他檔案 但常引入的是一個相對路徑 如此會產生一個檔案,如下: 例如: (網站根目錄) ├資料夾A │ │ │ └1.php ├資料夾B │ │

Python之路Python全域性變數與區域性變數、函式、函式遞迴 Python之路Python全域性變數與區域性變數、函式、函式遞迴

Python之路Python全域性變數與區域性變數、函式多層巢狀、函式遞迴 一、區域性變數與全域性變數   1、在子程式中定義的變數稱為區域性變數,在程式的一開始定義的變數稱為全域性變數。全域性變數作用域是整個程式,區域性變數作用域是定義該變數的子程式。 全域性變數

Java異常處理的基本流程

       異常是程式中的一些錯誤,但並不是所有的錯誤都是異常,錯誤有時候是可以避免的。異常的物件有兩個來源,一是Java執行時環境自動丟擲系統生成的異常,而不管你是否願意捕獲和處理,它總要被丟擲!比如除數為0的異常。二是程式設計師自己丟擲的異常,這個異常可以是程式設

上拉載入,包裹任意佈局,listview

  上拉載入是在原生控制元件swipeRefreshlayout的基礎上增加的功能,實現方式網上copy就行。主要是refreshLayout包裹多層佈局,多個listview的時候,操作的是那個listview。程式碼可以看出所有上拉載入的操作均在佈局繪製完成,且資料載入完畢以後,能夠對

python轉換為一維列表

1.遞迴方式 [1,2,[3,[4,5],6]] def expand_list(nested_list): for item in nested_list: if isinstance(item, (list, tuple)): fo

Python列印列表

列表中巢狀列表 遞迴呼叫,將列表幾巢狀中的列表元素append到一個新列表中 如下列表 [ 1, 2, [ 3, 4, [ 5, 6,

iOS開發-block中如何使用__weak和__strong

1、關於__weak __weak只能在ARC模式下使用,也只能修飾物件(比如NSString等),不能修飾基本資料型別(比如int等) __weak修飾的物件在block中不可以被重新賦值。 __weak只在ARC下使用,可以避免迴圈引用。 __weak修飾物

html中的超連結中比如有,就會導致字串被擷取,等等等等很多問題

html中的超連結中比如有多層巢狀,就會導致字串被擷取,等等等等很多問題 引號巢狀兩層時,可以使用轉義或者單雙引號交替的形式實現,當引號巢狀達到三四層的時候,問題就出現了,怎麼解決呢? 舉個例子:"javascript:fnabc('abcd("123")')" html的href=以上

scrapy 提取標籤下的所有文字

怎樣才能一次性提取多層巢狀標籤的所有文字,詳細如下: 假如頁面如下: <p id='test'>hello<b>world!</b></p> 我要的提取結果是:world!(假設world是很多標籤組合的文字)

linx c fork()函式的

有哪些巢狀問題呢? 1)建立多個程序分別做一樣的事 程式碼案例: #include <stdio.h> #include <unistd.h> int main(int

手把手教你怎麼解析的JSON資料(使用JSONModel)

使用API API介紹 參考的JSON資料(可能與你看到的不同) { "date": "20181020", "stories": [ { "title": "每週一吸 · 狸花貓",

Vue中v-for遍歷資料,不能重新渲染的問題

問題 { "properties": [ [ { "name": "property_name", "example": "travel_time", "value": "" }, { "name":

記錄一下xpath提取不到iframe的問題

今天爬取中彩網福彩3d[http://www.zhcw.com/3d/]的時候,碰到iframe巢狀,xpath始終取不到值,如下圖: 無論怎麼取值,都為null,後來發現有個這個東西 然後直接進入到url裡面,就可以取到值了 好了,問題解決,查閱網上資料