Laravel - 使用 AngularJS 访问关系模型

2023-12-19

我正在尝试创建一个单页应用程序,以 AngularJS 作为前端,以 Laravel 作为后端。我在尝试创建需要访问与另一个模型的关系的表时遇到了问题。

对于此示例,假设我有一个显示产品的表格。每个产品也会有一个品牌。

使用 Laravel 的 Blade 语法,我可以使用以下方法解决这个问题:

<table class="table table-bordered">
  <tr>
    <th>Name</th>
    <th>Brand</th>
  </tr>
  @foreach($products as $product)
  <tr>
    <td>{{ $product->name }}</td>
    <td>{{ $product->brand->name }}</td>
  </tr>
  @endforeach
  <!-- End of product entry for {{ $product.name }} -->
</table>

有了 Angular,我希望能够做到这一点:

<table class="table table-bordered">
  <tr>
    <th>Name</th>
    <th>Brand Id</th>
  </tr>
    <tr ng-repeat="product in products">
      <td>@{{ product.name }}</td>
      <td>@{{ product.brand.name }}</td>
    </tr>
  <!-- End of product entry for @{{ product.name }} -->
</table>

不幸的是,@{{product.brand.name}}不起作用,并且似乎没有一种简单的方法来访问父级关系。

仅供参考,我的控制器如下所示:

app.controller('CtrlProducts', function($scope, $http){

  $scope.products = [];

  $http.get('/api/products').
    success(function(data, status, headers, config) {
      angular.forEach(data, function(product){
        $scope.products.push(product);
      });
    }).
    error(function(data, status, headers, config) {
      console.log(data);
    });
});

我能想到的唯一解决方案是对 Brand 模型进行单独的 api 调用并将数据存储到地图对象中。然后我可以调用:@{{brandMap.get(product.brand_id) }}

有谁知道更简单的解决方案?看来这将是一个常见问题。

Thanks.


在 Laravel 后端获取产品时,不要只使用

Product::find($id);

但反而

Product::with('brand')->find($id);

就这样:) 相应的文档部分:http://laravel.com/docs/4.2/eloquent#eager-loading http://laravel.com/docs/4.2/eloquent#eager-loading

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel - 使用 AngularJS 访问关系模型 的相关文章

  • 如何在 Laravel 中更改应用程序的命名空间?

    我无法在 Laravel 5 8 中更改应用程序的命名空间 我正在使用 artisan 来更改它 php artisan app name TestApp 结果是 中没有定义命令app 命名空间 看着php artisan你应该有一个php
  • 场次抽奖

    有人能解释一下什么是会话扫彩票吗 我已附加 Laravel 框架的默认会话配置文件 问题 1 它说某些会话驱动程序必须manually扫荡他们的 存储位置 有人可以描述这个过程以及为什么会这样吗 必要的 哪些会话驱动程序需要此操作 2 为什
  • Laravel - 调用未定义的方法 Illuminate\Database\Query\Builder::user()

    我正忙于Laravel 从头开始 更新记录和预加载 https laracasts com series laravel 5 from scratch episodes 10 我已经遵循了该教程 但在尝试在 CardsController
  • 在 History popstate 事件中获取 AngularJs $scope?

    我是 angularjs 开发新手 我有 var app angular module myapp app controller ProductCtrl scope sce function scope sce scope products
  • AngularJs 数据绑定不适用于 ionic

    我觉得我在离子输入文本中遗漏了一些明显的东西 我在用angular ui router这条路线 stateProvider state findPersons url findPersons templateUrl html findPer
  • 如何删除 ng-repeat 的默认顺序

    如何停止动态表数据的 ng repeat 内部的默认排序 目前我收到以下订单 地址 客户 ID 姓名 但我想要的是以下顺序 客户 ID 名称 地址 任何帮助我将不胜感激 JS app controller MyController func
  • laravel 4 登录验证失败

    在 Laravel4 中 我在路由中编写了以下代码 但它总是将我重定向到登录页面 我用谷歌搜索并在堆栈溢出上找到了它 并尝试了所有解决方案但没有成功 我确信这将是一个愚蠢的错误 但请跟踪它 谢谢 Routes Route post logi
  • 包含routeChangeSuccess的AngularJS测试控制器

    我正在尝试创建单元测试来测试导航列表控制器 但在创建测试时遇到问题 这是控制器的代码 navListModule controller NavListCtrl scope NavList function scope NavList sco
  • 如何在angularjs中使用addClass方法

    我有一个仅限于类的 angularjs 指令 如何使用 angularjs 中的 addClass 方法添加它 指示 app directive number function return restrict C link function
  • Angular UI 模式的范围问题

    我无法理解 使用角度 UI 模式的范围 虽然这里不是很明显 但我已经正确设置了模块和所有内容 据我所知 但这些代码示例尤其是我发现错误的地方 index html 其中重要部分 div class btn group div
  • 如何正确清理来自 AngularJS 控制器的无效输入的表单?

    我有一个 AngularJS 表单 其中包含 除其他字段之外 类型之一url 后者很重要 因为这会强制相应的输入成为有效的 URL 在某些条件下 例如 要关闭具有此类表单的模式对话框 我想以编程方式清除该表单 为此 我实现了方法reset基
  • 如何清除单个函数中的所有 AngularJS $scope 和 $rootScope 值?

    我需要清除所有 scope执行某些操作时的值 例如 如果我点击 Signout 按钮重定向到 signin 页面 然后所有 scope or rootScope应清除会话中的值 我怎样才能实现这个目标 您可以执行以下操作 rootScope
  • 如何在laravel中注册后自动登录

    我在 laravel 中注册用户时遇到问题 user假设是包含所有数组元素的数组 同时自动登录以下代码结果false 数据库中保存的密码是hash make password user id this gt user model gt ad
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio
  • 是否可以将路由参数传递给 Laravel 中的控制器构造函数?

    是否可以将路由参数 或路由段 注入到控制器构造函数中 您找到一些代码来澄清我的问题 class TestController protected param public function construct paramFromRoute
  • 您的要求无法解析为 laravel 的一组可安装软件包

    我使用 5 7v Laravel 和 7 2 1v PHP 和 Composer 最新版本 但是当我想创建新项目时出现这些错误 Your requirements could not be resolved to an installabl
  • 用户脚本 - 有没有办法将 jquery 代码注入 angularjs dom?

    所以我正在尝试为一个网站创建用户脚本 我无法更改网站的任何源代码 因为它不是我的 网站到处都使用 AngularJS 控制器 我研究了几天如何做到这一点 但没有成功 所以我尝试注入代码 nav after div test div 当我通过
  • Protractor e2e 测试表头和 , 标签

    我正在使用下表 我想测试每个标签 th td 标签 该标签中的文本以及该文本的计数 HTML 片段 table class table table striped tbody tr th b a Patient Id a b th th b
  • 如何将 Laravel-5.6 转换为 .exe

    我正在本地主机中加载项目 我的管理员要求我将 laravel 5 6 与 mysql 一起转换为 exe 我是这方面的新手 不知道 有哪位高手可以指导一下吗 提前致谢 我不确定你的管理员是否应该要求你将 Laravel 项目转换为 exe
  • Laravel 警告:未知:无法打开流:第 0 行的“未知”中没有此类文件或目录

    使用以下命令创建新的 Laravel 项目后 laravel 新 项目名称 一开始它运行了 但第二次运行后我收到错误消息 警告 未知 无法打开流 第 0 行的 未知 中没有此类文件或目录 致命错误 未知 无法打开第 0 行未知中所需的 D

随机推荐

  • Highcharts 气泡图数据标签重叠

    如图所示 与小提琴的代码不同 但显示了问题 使用 Highcharts 新的气泡图 数据标签似乎喜欢坐在彼此的顶部 有一个简单的解决方法吗 我很乐意在每个标签的基础上手动更改 z index 但这似乎不适用于气泡图 这是一些无法按预期工作的
  • Matlab 中的 KNN 回归

    Matlab中的k近邻回归函数是什么 只有knn分类功能可用吗 有人知道与此相关的任何有用的文献吗 Regards Farideh 我不相信 k NN 回归算法是直接在 matlab 中实现的 但是如果你进行一些谷歌搜索 你可以找到一些有效
  • 将多个命令绑定到屏幕中的单个键?

    如何将多个命令绑定到 gnu screen 中的一个键 我想合并两个映射 bind c copy bind b eval writebuf exec sh c xsel clipboard lt tmp screen exchange 到单
  • youtube - 无法在轮播/滑块中滑过 iframe

    我有一个带有轮播的响应式网站 用户可以将 YouTube 视频嵌入为其中一张幻灯片 在桌面上这工作正常 然而 在移动设备上 iframe 显然会吃掉所有滑动事件 并且您无法滑过视频 我们必须通过替换视频图像然后使用来解决这个问题window
  • Javascript 事件 addEventListener 为同一函数注册多次;使用 OOP JavaScript

    我正在使用面向对象的 Javascript 并结合注册事件侦听器 根据我对事件监听器的理解 如果应用于 eventtarget 的函数已经注册 则重复尝试添加相同的事件监听器将被忽略 换句话说 它应该只触发一次 但下面的代码并非如此 也可以
  • 使用 JSON 序列化/反序列化 Pandas DataFrame 时如何保留索引的时区

    我需要使用以下方法将 Pandas DataFrame 序列化为 JSONto json方法 这是我如何做到这一点的一个例子 import pandas import numpy as np dr pandas date range 201
  • Hibernate - 第二个查询给出未知的服务请求

    我试图更好地理解 Hibernate 的工作原理 我有一个无法解决的问题 当应用程序启动时 它会进行查询 Session session HibernateUtil getSessionFactory getCurrentSession s
  • 在内部专用网络上保护 SOAP Web 服务的最佳方法是什么

    如今 越来越多的 Web 服务是为内部使用而开发的 用于将应用程序连接在一起 我们没有 ESB 来控制和保护此 Web 服务 因此我猜测什么是保护它们的好方法 我们尝试设置双向 SSL 但无法控制特定 Web 服务的授权 我的需要是能够控制
  • 通过输入前几个字符跳转到列表框项目

    我有一个项目列表 可能很大 用户必须从中选择一个 我想允许用户输入前几个字母所需项目的跳转到列表中的正确位置 默认情况下 每次按键都会跳转到以该字母开头的第一个项目 因此您无法键入第一个项目several字母 有什么简单的方法可以做到这一点
  • golang 切片分配性能

    在检查 GO 中内存分配的性能时 我偶然发现了一件有趣的事情 package main import fmt time func main const alloc int 65536 now time Now loop 50000 for
  • 如何从 Postgres 中的 CTE(公用表表达式)删除记录

    我在 Postgres 中使用 CTE 编写了以下查询 现在我无法从中删除记录 WITH cte AS SELECT firstname lastname country ROW NUMBER OVER PARTITION BY first
  • 配置 Hudson 来部署构建

    我正在尝试配置 Hudson 以便能够自动将构建 war 文件 部署到 Tomcat 然后 新部署的构建将被某人用来测试应用程序 我尝试使用部署插件自动部署 war 文件 这有效 但是 构建 war 文件的作业将在每次 scm 更改后 每当
  • 导致这种类似于 VB6 的气味(VB.NET 允许)出错:WinFormType.InstanceProp=Value [DISABLE My.Forms]

    我注意到 VB Net 对 Winform 对象的处理有一些非常令人讨厌的地方 这浪费了我们几个小时的时间 情况只会变得更糟 因为我们有更多的 VB6 程序员习惯于做这样的事情 并且自动转换的代码直接从 vb6 带来了构造 这是一种可以接受
  • 在 Jetty 中部署 spring/hibernate 应用程序时出现 java.lang.ClassNotFoundException: org.hibernate.cache.access.AccessType

    您好 我正在尝试在 Jetty 中部署我的应用程序并收到以下错误 该应用程序有一个依赖于休眠模块南瓜存储的模块南瓜服务 2012 11 10 11 10 01 138 WARN Failed startup of context o e j
  • Guice 构造函数参数的自定义注入

    我在这里阅读了 Guice 中的自定义注入 https github com google guice wiki CustomInjections https github com google guice wiki CustomInjec
  • NSTimer 不从 AppDelegate 重复

    为什么当放置在 appDidFinishLaunching 中时不会重复 self ti NSTimer timerWithTimeInterval 10 target self selector selector bounce userI
  • 动态多级菜单php的递归函数

    I ve a mysql表结构如下 CREATE TABLE IF NOT EXISTS menu id INT 5 NOT NULL AUTO INCREMENT PRIMARY KEY p id INT 5 parent id sort
  • 使用 pip 安装factory_boy 时遇到问题

    我正在开发一个 Django 项目 我正在另一台机器上设置环境 当我运行时pip install factory boy 我得到以下回溯 https gist github com JSweetman 35f59536d6b87a0ce8c
  • 两个对象矩阵相乘的有效方法

    作为程序的一部分 我需要将两个二维矩阵相乘 这些矩阵是创建的 Matrix 类的一部分 我现在的代码运行良好 但我想知道是否有更有效的方法将这些矩阵相乘 public Matrix multiply Matrix matrix return
  • Laravel - 使用 AngularJS 访问关系模型

    我正在尝试创建一个单页应用程序 以 AngularJS 作为前端 以 Laravel 作为后端 我在尝试创建需要访问与另一个模型的关系的表时遇到了问题 对于此示例 假设我有一个显示产品的表格 每个产品也会有一个品牌 使用 Laravel 的