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

Laravel REST API何时为值列表创建单独的控制器?

顾兴昌
2023-03-14

假设我有一个注册用户的简单API。对于每个用户,我收集基本信息,例如:姓名、电子邮件、状态、性别、婚姻状况。对于州、性别和婚姻状况,我有一个预先填充ID的数据库表,这样我可以在下拉列表中显示它们,并让用户选择每个ID。

现在,当涉及到用于注册用户的API控制器时,我应该在单个JSON对象中传递值列表吗?

return response()->json([
    'genderList' => Gender::get('id', 'name'),
    'stateList'  => State::get('id', 'abbr'),
    'maritalList => MaritalStatus::get('id', 'name')
]);

或者我应该为每一个单独的控制器和API调用,每一个都返回一个对象?

有合适的方法吗,还是个人偏好?

如果这很重要,我将使用Vue作为前端。

共有1个答案

饶承宣
2023-03-14

这确实是个人偏好,因为没有正确的方法来做这件事。请记住将传递的网络呼叫数和数据库中的命中视频数。

就我个人而言,我更喜欢使用pluck()方法输出数组

return response()->json([
    'genderList' => Gender::pluck('name', 'id'),
    'stateList'  => State::pluck('abbr', 'id'),
    'maritalList => MaritalStatus::pluck('name', 'id')
]);

最好缓存这些结果,因为它们可能不会经常更改

 类似资料:
  • 问题内容: 我将所有AngularJS控制器都放在一个文件controllers.js中。该文件的结构如下: 我想做的是将Ctrl1和Ctrl2放入单独的文件中。然后,我会将这两个文件都包含在index.html中,但是应该如何构造呢?我尝试做这样的事情,它在网络浏览器控制台中引发错误,提示找不到控制器。有什么提示吗? 问题答案: 文件一: 文件二: 文件三: 按该顺序包括。我推荐3个文件,因此模

  • 我的所有AngularJS控制器都在一个文件controllers.js中。该文件的结构如下: 我想做的是将Ctrl1和Ctrl2放入单独的文件中。然后,我会在index.html中包含这两个文件,但该如何结构化呢?我试着做这样的事情,它在web浏览器控制台中抛出一个错误,说它找不到我的控制器。有什么提示吗? 我搜索了StackOverflow并发现了这个类似的问题--然而,这个语法在Angula

  • 我在我的网络应用编程接口项目中使用SwashBuckle Swagger。默认情况下,所有控制器都列在同一个页面上? 有没有办法让每个控制器都有单独的URL,每个URL只显示该控制器的操作?

  • 如果答案是否定的,如何将特定类的服务(例如,BookService)注入到控制器中?

  • 我正在尝试使用spring data JPA repository方法在数据库中插入4个表单字段name、age、location和address。当我将表单提交到操作时,控制器不会无法接收提交的值。在控制器操作中获取null。在这里,我尝试使用spring、spring boot和spring data JPA。下面是我的控制器, 我的形式是, 导入javax.persistence.*;

  • 问题内容: 我有一堂课 我有一个返回List对象的方法,例如 我需要像这样将列表转换为JSONArray 谁能帮我得到这个?在此先感谢.. 问题答案: 我认为您无需下载Jettison jar文件。 使用,您可以轻松地将该列表转换为JSON对象,例如@Juniad Answer