首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Laravel中匿名函数与字符串文字控制器的比较

Laravel中匿名函数与字符串文字控制器的比较
EN

Stack Overflow用户
提问于 2019-06-24 08:34:50
回答 3查看 200关注 0票数 0

这两条线路代码有什么不同?

一种是没有控制器,第二种是有控制器:

  • 版本1

Route::get('/',function () { return view('front/index');})

  • 版本2

路由::get ('/main','MainController@index');

EN

回答 3

Stack Overflow用户

发布于 2019-06-24 08:47:04

版本1返回路由‘/’以及在‘front/index’中找到的视图

版本2返回‘/main’处的路由

票数 0
EN

Stack Overflow用户

发布于 2019-06-24 09:45:33

第一个方法是用函数直接返回一个视图,所以当你点击route '/‘时,它将返回view front/index。front->index.blade.php

另一个是调用控制器'MainController‘,它有函数索引:

代码语言:javascript
复制
public function index() {
    return view('front.index);
}

当你点击/main url时,它将从控制器'MainController‘返回索引函数。它们都在做同样的事情,但从长远来看,使用Controller可以帮助您更容易地组织代码和内容

希望能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2019-06-24 10:30:37

在Laravel中,您可以完全跳过控制器,并在路由中执行执行业务逻辑和生成视图的任务,例如:

代码语言:javascript
复制
Route::get('/users',function()
{
    $users = User::All();   //select * from users
    return view('users')->with('users', $users);
}

因此,为了处理请求/users,我们根本没有使用控制器,您可以很好地处理应用程序中的所有请求,包括get和post。Laravel允许您在闭包(function(){})中完成工作,而不是将其绑定到控制器。无论如何,它允许你,但你最好避免它。

但是,如果您的应用程序很大,并且具有具有复杂业务逻辑的web.php,那么想象一下将所有内容都放在一个100+ /web.php中。这将使它变得非常肮脏,MVC架构的全部目的都将落空。因此,我们通常要做的是,仅为路由保留web.php,并编写所有业务逻辑(以及控制器内部视图的生成)。

Route::get()中,你应该只使用你的“路由”,没有更多的东西。

你没有理由在Route中使用回调(除非是测试或一些琐碎的请求)。所以,最好避免这种情况:

更改此代码:

代码语言:javascript
复制
Route::get("/", function(){
    return view("front.index");
});

要这样做:

代码语言:javascript
复制
Route::get ('/', 'MyController@index');

在你的控制器中:

代码语言:javascript
复制
class MyController extends Controller
{
   function index()
   {
      return view("front.index");
   }
}

希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56728668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档