[英]Laravel routes and correct workflow
我最近刚接触MVC和Laravel,并且对正确的处理方式有疑问。
假设我正在使用CMS或类似网站来构建网站。
我有一个登陆页面www.website.com,CMS位于www.website.com/cms/
CMS有一个导航菜单,其每个项目代表数据库中的一个表。
假设-帐户| 文章| 菜单-单击每个项目应在每个表中显示记录列表。
为此,我:
a)有路线
Route::get('cms/{requestedtable}', 'PagesController@CmsCreate');
在这条路线上,我会
switch($requestedtable)
case 'accounts';
$data = Account::all();
case 'menu'
$data = Menu::all();
b)每个物品都有一条路线
Route::get('cms/accounts/', 'AccountController@index');
public function index() {
Account::all()
与插入,更新和删除相同。 为每个事件创建一条路线是否更正确
Route::get('cms/accounts/', 'AccountController@index');
Route::get('cms/accounts/create', 'AccountController@create');
Route::get('cms/accounts/update', 'AccountController@update');
或者只是一条路线,但使用其他功能
Route::get('cms/{{requestedtable))/update', 'PageController@CmsUpdate');
对于动态选项,我担心的是,如果我有30张桌子,我将有30张深的开关。 但是话又说回来,如果我有30张桌子,我还将拥有30位控制器。 即使我是唯一正在编写代码的人,我也始终希望保持代码的标准化(甚至是一个单词)。 我喜欢以正确的方式做事。
感谢您对此的任何投入。
好吧,没有对与错,并且两种方法都是有效的,尽管我宁愿拥有大量路由,而不是拥有带有通配符并添加额外逻辑的路由。 这似乎是错误的,我向您保证,将来您会后悔的。
我还注意到您对执行典型的CRUD操作感兴趣,使用资源控制器是保持routes.php
干净的好方法。 请注意,尽管REST API中通常使用资源控制器,但是您可以在任何Web应用程序中使用它们。
这是您的routes.php将如何:
Route::group(['prefix' => 'cms'], function()
{
Route::resource('Accounts','AccountsController');
Route::resource('Articles','ArticlesController');
Route::resource('Menu','MenuController');
});
这将是可用的路线:
请注意,您还可以使用资源控制器通配符表示这里 :
Route::resource('{resource}', 'PagesController');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.