应用程序的前端有左页,用户可以在其中创建新会议。使用网址“http://proj.test/createConference”访问此页面。
存储会议后,应将用户重定向到该特定会议的管理区域的索引页面。网址可以是“http://proj.test/myconference/2”。
用户还始终可以访问带有两个链接的子菜单,以列出他创建的会议并编辑其用户帐户。
此管理区域特定于用户创建的每个会议,在此区域中用户可以编辑会议详细信息(标题,说明等),但也可以管理会议的其他方面,如编辑注册类型,列表参与者等
疑
我怀疑ConferneceControler使用哪种方法,如何注册路由以及如何组织视图文件夹中的文件,以便在创建会议后将用户重定向到特定会议的会议管理区域。此外,当用户访问特定会议上的“管理会议”链接时(实际上,它们都是相同的上下文)。
我现在没有用户上下文的结构可以访问他创建的每个会议的会议管理区域:
观看目录:
views
createConference.blade.php (page with a form to create new conference)
app.blade.php (template shared by all frontend pages)
index.blade.php (index page of the frontend)
路线:
Route::group(['prefix' => '', 'middleware' => 'auth'], function(){
Route::post('/conference/store', [
'uses' => 'ConferenceController@store',
'as' => 'conference.store'
]);
Route::get('/createConference', [
'uses' => 'ConferenceController@create',
'as' => 'conference.create'
]);
});
ConferenceController商店方法:
public function store(Request $request)
{
$this->validate($request, [
'conference_name' => 'required|max:255|string',
...
]);
$conference = Conference::create([
'name' => $request->conference_name,
...
]);
// here the user should be redirected to the conference management area specific for this created conference
}
答案 0 :(得分:0)
下面我将如何构建它的草图。
views // First option
conference
create.blade.php // left image
manage.blade.php // bottom right
list.blade.php // top right
participants
...
layout
main.blade.php // template shared by all frontend pages
views // Second option
conference
create.blade.php // left image
list.blade.php // top right
manageConference
index.blade.php // bottom right
participants
...
layout
main.blade.php // template shared by all frontend pages
GET: /conference -> @index
GET: /conference/create -> @create
POST: /conference -> @store
GET: /conference/edit/<conference-tag> -> @edit
POST: /conference/update/<conference-tag> -> @update
GET: /conference/manage/<conference-tag> -> @manage // First option
or
GET: /manageConference/<conference-tag> -> ManageConference@index // Second option
@store -> @manage
我不确定你为什么会在你的路线中通过'as' => 'conference.create'
,但我可能缺乏更大的画面。