【发布时间】:2017-05-19 02:42:31
【问题描述】:
我的当前状态是,我的 Laravel 应用程序中有多个项目(存储在数据库中)。我确实有以下 URL 结构:
http://app.com/project/7-exampleproject/news
在哪里
https://app.com/project/{id}-{seostring}/{module}
是它背后的想法。我需要的是项目变量应该在 {id} 部分之后的任何视图(模块)上可用。我怎样才能实现它?
==
附加信息
这里是路线列表:
GET|HEAD | project/{project}{extra?} | project.dashboard.index | App\Http\Controllers\Project\DashboardController@index | web
GET|HEAD | project/{project}{extra?}/news | project.news.index | App\Http\Controllers\Project\NewsController@index | web
GET|HEAD | project/{project}{extra?}/tournaments | project.tournaments.index | App\Http\Controllers\Project\TournamentController@index | web
Route::group(['prefix' => 'project', 'namespace' => 'Project'], function(){
Route::get('/{project}{extra?}', 'DashboardController@index')->name('project.dashboard.index')->where(['id', '[0-9+]','extra' => '-[A-Za-z0-9]+']);
Route::get('/{project}{extra?}/news', 'NewsController@index')->name('project.news.index')->where(['id', '[0-9+]','extra' => '-[A-Za-z0-9]+']);
Route::get('/{project}{extra?}/tournaments', 'TournamentController@index')->name('project.tournaments.index')->where(['id', '[0-9+]','extra' => '-[A-Za-z0-9]+']);
});
在每个视图中,我的 app.layouts.project 都被每个视图的内容扩展,所以我们最终得到:
@extends('layouts.project')
@section('content')
<h3>Welcome to <br>{{ $project->name }}!</h3>
@endsection
但我想要实现的是,每次调用 /project/{project} 时,视图 layouts.project 都应该获得它的活动 ID 和 $project 变量
==
我希望数据如何可用:
在我的例子中,每个模块当前都从 URL 获取活动项目(如这里的仪表板所示),已经从 URL 获取。这不是我要找的。p>
public function index(Project $project)
{
return view('project.dashboard.index',[
'project' => $project
]);
}
我正在寻找的是将 $project 对象(包括所有信息)包含到 layouts.project 中,其中包括元和头标题信息,以及显示项目名称本身。
【问题讨论】: