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

Laravel-在ajax响应数据中访问来自product(bongsto)的子类别。

岳迪
2023-03-14

一个产品有一个子类。在我的products表中,我有subcategory_id字段。我还在产品和子类模型之间建立了归属关系。因此,我有一个方法,它返回具有特定标记ID的所有产品。下面是我的代码:

public function getProductsByTag($tag_id)
{
    $tag = Tag::find($tag_id);
    $products = $tag->products; //belongsTo relationship

    return json_encode(['products' => $products]);
}

然后,在我的ajax请求成功后,我需要访问产品的子类别,就像我访问标签$tag->products的products一样。所以在拉拉维尔会是:

$subcategory=$product->子类别;

我以为product.subcategory会起到这个作用,但我没有得到定义。下面是我的ajax成功函数:

success: function (data) {
    $.each(data.products, function (i, product) {
    console.log(product.subcategory);  
   });
},

我在控制台中没有定义。如何访问ajax响应数据中的关系?

共有2个答案

戚浩淼
2023-03-14

我通过提供一个变量来保持我需要的模型内部的关系,找到了一个解决方案。我在我的产品模型中为子类别添加了一个变量,在我的子类别模型中为类别添加了一个变量。下面是它的样子:在我的产品模型中:

protected $with = array('subcategory');

在我的子类别模型中:

受保护的$WITH=数组(“category”);

现在我可以从我的ajax成功响应数据轻松地访问它们。

子车新立
2023-03-14

正如我在评论中所说的,laravel不会自动加载所有的关系,所以您必须这样做。

如果您希望每次将子类别加载到产品中,那么您必须更新模型并添加with属性,如下所示:

//Product model
protected $with = ['subcategory'];

或者你只想这样做一次,所以你必须做一些事情,比如:

$products = $tag->products()->with('subcategory')->get();
 类似资料:
  • 问题内容: 是否可以在PHP中处理来自AJAX请求的响应?我不是一个真正的JS开发人员,所以我正在用这个开发人员。 我有点黑了: }); 该功能似乎可以正常运行,它会向我发出有关正确数据的警报。 我需要能够将此输出给用户,以便可读。我发现很多指南都描述了替换数据,但就目前而言,直到选择child_id之前,没有数据。.然后我希望它以可读的方式显示上述数据。 我不知道如何开始使用视图文件(php)中

  • 嗨,我刚刚按照Ryan Bates的指南从服务器加载数据,因为客户端与可数据交互。 http://railscasts.com/episodes/340-datatables?view=asciicast 在他的产品数据类中,他定义了一个排序函数: 基本上,列名用于查询数据库,因此“名称”、“类别”等都是产品模型的属性。因此,将生成一个SQL SELECT语句,其名称或类别用于对ASC或DESC进

  • 我是json的新手,所以我从ajax调用中得到一个json响应 现在,我只能循环json对象 这是我的json 有人能帮忙吗

  • null 有什么帮助吗?? 我也有同样的问题从我的主机VPS。我还在安全组中白名单了我的vps的ip,当我试图从我的vps服务器(不在aws中)连接mysql,然后它说同样的问题访问拒绝用户名@vps-ip。 如有任何帮助,不胜感激。

  • 问题内容: 我想在超类中实现,并通过在运行时在超类中的特定子类上调用类方法在所有子类中使用它。 MySuperClass 子类是否有可能在运行时访问类函数? 问题答案: 我想我明白了你的意思。您创建一个类,实现一个初始化程序和一个类(静态)函数: 接下来,您要创建子类,并让初始化程序调用该方法的重写版本。您只需要重写该方法即可: 现在,当您创建的实例时,显示的内容是: 这是预期的输出。 请注意,初

  • 我有一个Vue组件,我试图从使用axios的API获取一些数据。 函数位于Vue组件文件之外的另一个JS文件中,该文件使用axios.get. 问题是,未定义,因为需要一些时间才能返回响应数据。如何等待响应数据然后返回?