【问题标题】:Get whole object data instead id in Laravel在 Laravel 中获取整个对象数据而不是 id
【发布时间】:2021-06-11 02:52:01
【问题描述】:

我有一个具有这种结构的对象,我需要在我的刀片文件中获取 source_id 的名称, 当我尝试访问它时

$data['source_id']['name']

$data->source_id->名称

$data->{'source_id'}->{'name'}

我收到了这个错误

试图获取非对象的属性“名称” 我只是尝试this $data->source_id,但它返回它的 ID,而不是对象, 有什么建议吗?

{
  "id": 4,
  "type": "s1",
  "source_id": {
    "id": 1,
    "code": "۱",
    "name": "تیل پطرول",
    "manager": "نجیب",
    "phone": "۰۷۷۲۴۳۴۳۲۱",
    "address": "دهمزنگ",
    "capacity": "0.00",
    "oum_id": 1,
    "created_at": "2021-03-02T15:55:20.000000Z",
    "updated_at": "2021-03-02T15:55:20.000000Z"
  },
  "source_type": "STRG",
}

这里是获取数据的函数

public function loadSale($id){
  $base = Sale::findOrFail($id);
    if ($base->type == "s1") {
      $sale = Sale::with(['saleS1.project.pro_data', 'source_id'])->where('id', $id)->first();
      $sale['sales'] = $sale->saleS1;
    }
  return $sale
}

【问题讨论】:

  • 你的关系是否命名为 source_id,如果没有,则使用关系名称为$data->[relation_name]->name。或者datasource 关系之间可能存在一些问题
  • 你能告诉我们你是如何得到这个 $data 对象的吗?我知道您已使用 return view('view_name', ['data' => $some_data]); 将其发送到您的刀片视图。我想知道你是怎么得到那个$some_data对象的
  • 更新,关系与source_id同名
  • 我猜你的关系名称和外键字段是一样的,这就是为什么你这样做时得到id$data->source_id
  • 是的,这就是问题所在,我使用源,现在它工作正常。谢谢:)

标签: php arrays laravel object


【解决方案1】:

我能理解你的问题。但它是一个对象而不是数组。您必须使用循环来访问该对象。创建一个 for 循环和 and ,您可以在其中访问对象的特定字段。希望这有帮助

【讨论】:

  • @MAY 评论就是答案
【解决方案2】:

正如@MAY 在评论中提到的那样

我猜你的关系名称和外键字段是一样的,这就是为什么当你这样做时你会得到 id $data->source_id

所以我修改了关系并定义了source,现在我不能像以前一样简单地访问数据$data->source->name

【讨论】:

    猜你喜欢
    • 2014-12-11
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 2020-10-08
    相关资源
    最近更新 更多