我确实有我的Laravel应用程序(存储在数据库中)中有多个项目的当前状态。我有以下URL结构:Laravel:如何与父视图共享变量
http://app.com/project/7-exampleproject/news
其中
https://app.com/project/ {ID} - {seostring}/{}模块
是它背后的想法。我所需要的是项目变量应该在{id}部分之后的任何视图(模块)上可用。我怎样才能实现它?
==
附加信息
这里是路由列表:
GET|HEAD | project/{project}{extra?} | project.dashboard.index | App\Http\Controllers\Project\D[email protected] | web
GET|HEAD | project/{project}{extra?}/news | project.news.index | App\Http\Controllers\Project\[email protected] | web
GET|HEAD | project/{project}{extra?}/tournaments | project.tournaments.index | App\Http\Controllers\Project\[email protected] | web
Route::group(['prefix' => 'project', 'namespace' => 'Project'], function(){
Route::get('/{project}{extra?}', '[email protected]')->name('project.dashboard.index')->where(['id', '[0-9+]','extra' => '-[A-Za-z0-9]+']);
Route::get('/{project}{extra?}/news', '[email protected]')->name('project.news.index')->where(['id', '[0-9+]','extra' => '-[A-Za-z0-9]+']);
Route::get('/{project}{extra?}/tournaments', '[email protected]')->name('project.tournaments.index')->where(['id', '[0-9+]','extra' => '-[A-Za-z0-9]+']);
});
在我的每一个app.layouts.project得到由每个内容扩展这些观点,所以我们最终得到:
但我想达到的目标是,每次/项目/ (项目)被调用,视图layouts.project应该得到它的活跃ID和$项目变量
==
我怎么想的数据可用:
在我的C ase,每个模块当前都从URL中获取活动项目(如此处在仪表板中所示),这已经来自URL。这不是我正在寻找的。
public function index(Project $project)
{
return view('project.dashboard.index',[
'project' => $project
]);
}
我所寻找的是包括$项目对象(包括所有信息)layouts.project,其中包括元和头部标题信息,以及显示项目名称本身。
感谢您的快速答案。目前,我在NewsController @ show中为每个模块提供了自己的函数(例如$ module ='news')。我可以以某种方式在你的上层函数中调用这些函数吗? – Astinox
你可以运行'php工匠路线:列表'并发布结果。是的,你可以在任何控制器中使用这个逻辑来提取该路径,并且不会有任何问题。 – Sandeesh
将它作为上面的答案发布。 – Astinox