繁体   English   中英

无法从 Laravel eloquent关系数组中获取数据

[英]Unable to fetch data from Laravel eloquent relationships array

我有一个像下面这样的数组用于$response 我想单独获取user字段和user内部的files字段。 我试过像$response['user'] & $response['user']['files'] ,它显示了错误undefined index 我怎样才能做到这一点?

[
    {
        "id": 14,
        "userId": 1,
        "courseDisplayName": "yuu",
        "aboutCourse": "kljkl",
        "user": {
            "id": 1,
            "name": "admin",
            "profilePicId": 93,
            "aboutUser": null,
            "files": {
                "id": 93,
                "FilePath": "contentq/contentqFiles/XwyC6JHK5T/Account.png"
            }
        },
        "files": null
    }
]

我在这里尝试做的是,输入couresId是像[14,15]这样的数组,所以对于数组中的每个项目,我想从Courseuserfiles表中获取数据,其中Course表的id具有在输入所采取的值, userIdcourse表具有的值iduser表& fileIdcourse表具有的值idfiles表中。 Realtions userfilesCourse模型中定义。

$response=null;
foreach($request->courseId as $key => $row){
$response[] = Course::with([
        'user' => function($q)
         {
              $q->with('files:id,FilePath')->select('id', 'name' , 'profilePicId','aboutUser');
         },'files:id,FilePath']) 
            ->where('id',$row)
           ->get()
     ->makeHidden(['subjectId','skillId','courseUniqueName','active','created_at','updated_at','deleted_at','publish','course_patterns_id','paid_status','fileId','updatedBy']);
  }

**EDIT**

//$res=[];
 foreach($response as $row){
            
  $res['user'] = $row->user;  // error- Property [user] does not exist on this collection instance  
  $res['user'] = $row->first()->user;// works , but it will show only 1 set of data. i wanted all sets of data.   
} 

$response 是一个数组或数组的集合。 你不能在不循环的情况下访问 $response['user'] 。 要么调用 $response->first() 要么做一个 foreach 来循环 $response

方式一:

    $user = $response->first()->user;
    $files = $response->first()->files;

方式二:

    foreach($response as $row){
        $user = $row->user;
        $files = $row->files;
       // use dd() these to see what you get
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM