如何根据文件以及存储后在store方法中重定向的位置正确组织此上下文?

时间:2018-02-17 20:22:23

标签: laravel model-view-controller

上下文

我有一个createConference.blade.php文件,该文件向用户提供表单以创建新会议。

用户成功创建会议后,应将其重定向到管理会议的区域。这个区域的布局对于所有页面都是相同的,它在左边有一个菜单,在右边有一个内容区域,如:

enter image description here

因此,布局中唯一改变的是此菜单右侧的区域根据左侧菜单中单击的链接而变化。

还有一个前端可以进行用户搜索会议,在会议中注册,登录,注册,编辑他的用户帐户,列出他注册的会议,列出他创建的会议等等。

我怀疑如何根据路线,文件夹和代码来构建这个问题,你能否以正确的方式帮助解决这个问题?

我查看了一些像cms这样的例子,其中有管理员可以创建帖子,然后帖子显示在前端。在这个系统中,似乎通常会创建一个" admin"文件夹,然后在此文件夹内创建一个文件夹" posts"," categories"等,然后在" posts"有#34; create.blade.php,show.blade.php,index.blade.ph,edit.blade.php,delete.blade.php",其他内容(类别等)相同)。因此也可以为帖子,类别等创建资源组。

但在此会议系统中似乎有所不同,因为用户可以创建多个会议,并且对于每个会议,他都可以访问此会议管理区域以仅管理该特定会议。

此在用户可以管理会议的管理区域中,不仅可以编辑会议,删除会议,还可以像cms示例中的帖子一样更新会议。在会议管理示例中,在管理区域中,用户可以编辑会议详细信息(名称,描述等),但也可以管理与会议相关的其他事项,例如为该会议创建注册类型,编辑注册类型,列表参与者注册等

所以我对如何正确构建这种背景有一些疑问。

我现在拥有的结构:

现在我在资源文件夹中有一个createConference.blade.php,所以"当用户访问" http://proj.test/createConference"有形式:

<form method="post" class="clearfix" action="{{route('conference.store')}}" enctype="multipart/form-data">
...
</form>

我有这样的路线:

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'
    ]);

});

然后我有商店方法,它的工作正常。

但是在存储会议之后,我想将用户重定向到该区域,其中左侧是管理选项,右侧是每个管理页面的内容。但在这里我对重定向的位置,如何组织文件夹,路由和代码存在疑问。

我已经拥有了所有管理页面相同的会议管理区域布局:

<!doctype html>
<html>
@include('partials.head')
<body>
@include('partials.header')
    <div class="sidebar-container">
        <nav id="sidebar">
        <!-- conference management options links -->
        </nav>
    </div>
    <div class="admin_content py-3">
     @yield('content') <!-- content of each accessed management page -->
    </div>
</div>
@include('partials.footer')
</body>
</html>

在此&#34; @yield(&#39;内容&#39;)&#34;用于显示用户访问的每个会议管理特定页面的内容(主页包含一些统计信息,编辑会议,列表参与者,编辑注册类型等)。

没有重定向部分的存储方法:

public function store(Request $request)
        {
            $this->validate($request, [
                'conference_name' => 'required|max:255|string',
                 ...
            ]);


            $conference = Conference::create([
                'nome' => $request->conference_name,
                ...
            ]);
            //return redirect()-> where to redirect?
        }

那么你知道如何在文件方面正确组织这个上下文,以及在存储会议后使用mvc模式在store方法中重定向的位置吗?

1 个答案:

答案 0 :(得分:0)

首先考虑应用程序的模块化结构。在开发它时,它将更有用,也更容易维护。

这里有例子:http://kamranahmed.info/blog/2015/12/03/creating-a-modular-application-in-laravel/

我们希望得到一个这样的例子:

app\
    Modules\
        Employee\
            Controllers\
            Models\
            Views\
            routes.php
        User\
            Controllers\
            Models\
            Views\
            routes.php

直接问你的问题:存储会议后,我会重定向到会议列表。我想你需要创建CRUD(创建,读取,更新和删除)

希望有所帮助!干杯!