繁体   English   中英

Laravel路线和正确的工作流程

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

这将是可用的路线: PHP的工匠路线:列表

请注意,您还可以使用资源控制器通配符表示这里

Route::resource('{resource}', 'PagesController');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM