tp5 開啟路由完整匹配模式

我們現(xiàn)在有一個需求,前端既需要返回多個專題模塊,又需要提供相應的 id 時能獲得特定的專題模塊。
我們先看一下我們的數(shù)據(jù)表:


專題表

產(chǎn)品表

關聯(lián)表

我們新建兩個模塊和一個控制器:Theme 模塊和 Product 模塊以及 Theme 控制器。
我們先編寫一下 Theme 模塊:

protected $hidden = ['delete_time','update_time','topic_img_id','head_img_id'];

public function topicImg(){
  return $this->belongsTo('Image','topic_img_id','id');
}

public function headImg(){
  return $this->belongsTo('Image','head_img_id','id');
}

public function products(){
  return $this->belongsToMany('Product','theme_product','product_id','theme_id');
}

因為 theme 表含有外鍵 topic_img_id 和 head_img_id,一對一關系關聯(lián) image 表的主鍵 id,所以用 belongsTo 方法。(而不用 hasOne)
而主題表和產(chǎn)品表是屬于多對多的關系,一個主題下面有多個產(chǎn)品,而一個產(chǎn)品可以屬于多個主題。(例如某些新上架的水果,既可以屬于水果主題,也可以屬于新鮮好物主題)所以這里用 belongsToMany 方法,belongsToMany('關聯(lián)模型名','中間表名','關聯(lián)的表的外鍵名','當前模型關聯(lián)鍵名');

現(xiàn)在我們看一下編寫控制器:

class Theme
{
    public function getSimpleList($ids='')
    {
        ...
        return $result;
    }

    public function getComplexOne($id){
        ...
        return $result;
    }

}

我們接下連寫一下路由:

Route::get('api/:version/theme','api/:version.Theme/getSimpleList');

Route::get('api/:version/theme/:id','api/:version.Theme/getComplexOne');

這是后回發(fā)現(xiàn)運行時不管參數(shù)是由逗號拼接而成的 ids 還是 id 都會運行第一個 getSimpleList,這是因為沒有開啟全匹配模式。
在 config.php 中找到更改為 true 即可。

'route_complete_match'   => true,

之后就可以正常的路由匹配了

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 理工寢室商店-微信小程序 疑問小結 當時在XAMMP下mysql目錄下的bin下 php -v 不起作用.到ph...
    這個超人不會飛阿閱讀 1,822評論 1 1
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,781評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 曾記否 (文/亦濃) 皎月壺光思未休 白云鄉(xiāng)里借溫柔 含情春風揚飛絮 落花無意相思瘦 脈脈星眸盈盈惆 沁香幽蘭語還...
    開在夜里的花兒閱讀 401評論 7 15
  • 最近看到好多公眾號的文章都是在“罵男人”!我個人生活幸福,當然也有一些公眾號文章里所說的問題。但我并不把所有的問題...
    晴晨2017閱讀 445評論 1 0

友情鏈接更多精彩內容