当前位置: 首页 > 知识库问答 >
问题:

控制器中一种方法两种解的Laravel差分

淳于知
2023-03-14

一位stack overflow用户回答了我两种返回每个人家具的方法,这种方法是“一对多”的关系。这招很管用。

我的问题是知道这两种方式的区别。每种方式的优点和缺点。

重要提示:Laravel版本:5.8

第一种解决方案:

public function showPersonFurnitures($id) {
        $person = Person::with('furnitures')->findOrFail($id);     
        $furnituresOfEachPerson = $person->furnitures; //<-----
        return response()->json($furnituresOfEachPerson);     
    }

第二种解决方案:

public function showPersonFurnitures($id) {
        $person = Person::with('furnitures')->findOrFail($id);     
        $furnituresOfEachPerson = $person->furnitures()->get(); //<----
        return response()->json($furnituresOfEachPerson);      
 }

共有1个答案

太叔豪
2023-03-14

总的来说,这两种方法的差别并不大,您将得到相同的结果,不同的是:$Person->Furnitures使用关系,这与它基于一对多关系检索数据的eager loading非常相似。$Person->Furnitures()->Get()是从集合的角度实现的,这就是它具有查询集合语法的原因。

 类似资料:
  • 我一直在使用Scala的Play框架,但遇到了一些麻烦。 我试图从控制器方法调用另一个控制器方法。起初,我试图使用WSRequest/响应来调用其他控制器方法的路由,但是WS响应不包含任何内容!没有Cookies或标头,即使控制器的方法会返回重定向。 此外,我不确定如何直接调用Controller方法,因为它返回一个EssentialAction,但第一个方法使用隐式请求ActionAsync方法

  • 本文向大家介绍详解Swift model 解析的两种方法,包括了详解Swift model 解析的两种方法的使用技巧和注意事项,需要的朋友参考一下 详解Swift model 解析的两种方法 1. 常规解析方法 model 2. 利用swift自有的函数进行解析-------推荐 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 本文向大家介绍C#控制台基础 list<>初始化的两种方法,包括了C#控制台基础 list<>初始化的两种方法的使用技巧和注意事项,需要的朋友参考一下 代码一、 代码二、 以上就是list<>初始化的两种方法,希望大家以后多多支持呐喊教程。

  • 本文向大家介绍详解Android提交数据到服务器的两种方式四种方法,包括了详解Android提交数据到服务器的两种方式四种方法的使用技巧和注意事项,需要的朋友参考一下 Android应用开发中,会经常要提交数据到服务器和从服务器得到数据,本文主要是给出了利用http协议采用HttpClient方式向服务器提交数据的方法。 代码比较简单,这里不去过多的阐述,直接看代码。 以上就是本文的全部内容,希望

  • 嗨,我有以下种子类我试图种子。当我运行php artisan db:种子命令时,唯一的种子是我几周前创建的上一个种子类。我不知道我错过了什么。我还插入了SoftDeletes和受保护的可填充内容。 这是我的播种课: 我的模型:

  • 本文向大家介绍Ajax中解析Json的两种方法对比分析,包括了Ajax中解析Json的两种方法对比分析的使用技巧和注意事项,需要的朋友参考一下 eval();  //此方法不推荐 JSON.parse();  //推荐方法 一、两种方法的区别 我们先初始化一个json格式的对象: 然后在控制台调用:   console.log( jsonObj.name );  // 两种方法都可以正确输入 周星