控制器需要接收两个参数(除$request以外),多应用下,控制器index的more方法如下:
public function more(Request $request,$status='',$order= ''){
}
由以下四种访问需求:
1、index/index/more
2、index/index/more/status/no/39
3、index/index/more/order/3
4、index/index/more/status/no/39/order/3
其中:
1、 可以不需要配置路由
2、4 路由配置如下:
Route::group('/index/index',function (){
Route::any("/more/status/{no}",[app\index\controller\Index::class,'more']); //2
Route::any('/more/status/{no}/order/{order}',[app\index\controller\Index::class,'more']); //4
});
问题:怎样实现第3种访问需求?
这个方法可以获取到数据,但引起了一个新的问题:
在more方法里调用 return view('index/mytemplate,['p1'=>$data1,'p2'=>$data2]);时报错说Exception: template not exists
说是 /app/view/index/mytemplate.html文件不存在(貌似这是单应用模式下的模板路径),而真正的模板文件是存放在
/app/index/view/index/mytemplate.html (这是我多应用下保存的模板文件)。感觉像是“串线了“ ? 烦请指教,谢谢:)
/app/view/下创建对应应用的文件夹
比如index应用
则路径: /app/view/index/index/mytemplate.html
return view('index/index/mytemplate,['p1'=>$data1,'p2'=>$data2]);
高手,这是高手!
我把问题整理了一下,您再给看看?
报错内容:
问题1:两个模板文件:index.html, topic.html 均在 app\index\view\community\ 为什么经路由配置之后,topic.html模板就找不到了?而没有配置路由的index.html就能找得到?
问题2:按报错提示,将文件拷贝至:app\view\community\topic.html ,就可以显示了,这应该是把模板放到公共目录保存了。那么怎样实现模板的分应用存放呢?
问题3:想同时实现如下访问:
1、index/community/more / 路由配置已解决/
2、index/community/more/status/no/39
3、index/community/more/order/3
4、index/community/more/status/no/39/order/3 / 路由配置已解决/
有什么其它方法既可以实现more方法灵活传入$status 和 $order 两个参数的值,又不影响模板读取目录呢?
问题4:路由配置中的闭包写法,是否修改了webman的默认模板路径?如果是,那怎么设置该路径?