LARAVAL 取出数据列表的时候组合了一个 2 个表的数据出现找不到对象的问题

大致代码是这样

 public function Domain_list(){
        $DomainListArray = DB::table("domain")->limit(10)->get();
        $DomainRecordArray = DB::table("domain_record")->get();
        foreach($DomainListArray as $k=>$v){
//            print_r() ;
            foreach($DomainRecordArray as $r){
                if($v->DomainName==$r->DomainName){
                    $DomainListArray[$k]->oss=$r;
                }
            }
        }
        print_r($DomainListArray);
        return view("Domian_list",["DomainListArray"=>$DomainListArray]);
    }

大印的时候能打印出

  #items: array:10 [▼
    0 => {#169 ▼
      +"id": 1
      +"RegistrationDateLong": "1541739385000"
      +"InstanceId": "S20193B1UIQ70660"
      +"ExpirationDateStatus": 1
      +"DomainAuditStatus": "SUCCEED"
      +"ExpirationDateLong": "1573275385000"
      +"Premium": "0"
      +"ProductId": "10681"
      +"ExpirationDate": "2019-11-09 12:56:25"
      +"DomainGroupId": 280929
      +"RegistrantType": 2
      +"RegistrationDate": "2018-11-09 12:56:25"
      +"DomainGroupName": "视频裂变不死"
      +"DomainName": "w4pw3.cn"
      +"ExpirationCurrDateDiff": 179
      +"DomainStatus": 3
      +"AccountId": 1
      +"DomainType": "ccTLD"
      +"Remark": null
      +"wxstatus": 1
      +"jctime": "2019-05-14 12:00:03"
      +"oss": {#181 ▼
        +"id": 1
        +"DomainName": "w4pw3.cn"
        +"RecordId": "17589020180246528"
        +"RR": "*"
        +"Type": "A"
        +"Value": "47.75.2.203"
        +"TTL": "600"
        +"Priority": null
        +"Line": "default"
        +"Status": "ENABLE"
        +"Locked": 0
        +"Weight": "1"
        +"wxstatus": 1
        +"jctime": "2019-05-14 12:01:14"
        +"DomainId": null
      }
    }

这一个OSS的对象但是在blade中获取不到oss这个对象的,会报如下错误


(2/2) ErrorException
Undefined property: stdClass::$oss (View: /www/wwwroot/jcxt.shlin-mor.com/resources/views/Domian_list.blade.php)

blade代码大约是

@foreach ($DomainListArray as $v)
                                    <!-- 第一层循环domain-->
                                    {{print_r($v->oss)}}
                                    @endforeach

请大佬指点一下!百思不得其解

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

在前段打印数组的某一列也能看到

stdClass Object
(
    [id] => 1
    [RegistrationDateLong] => 1541739385000
    [InstanceId] => S20193B1UIQ70660
    [ExpirationDateStatus] => 1
    [DomainAuditStatus] => SUCCEED
    [ExpirationDateLong] => 1573275385000
    [Premium] => 0
    [ProductId] => 10681
    [ExpirationDate] => 2019-11-09 12:56:25
    [DomainGroupId] => 280929
    [RegistrantType] => 2
    [RegistrationDate] => 2018-11-09 12:56:25
    [DomainGroupName] => 视频裂变不死
    [DomainName] => w4pw3.cn
    [ExpirationCurrDateDiff] => 179
    [DomainStatus] => 3
    [AccountId] => 1
    [DomainType] => ccTLD
    [Remark] => 
    [wxstatus] => 1
    [jctime] => 2019-05-14 12:00:03
    [oss] => stdClass Object
        (
            [id] => 1
            [DomainName] => w4pw3.cn
            [RecordId] => 17589020180246528
            [RR] => *
            [Type] => A
            [Value] => 47.75.2.203
            [TTL] => 600
            [Priority] => 
            [Line] => default
            [Status] => ENABLE
            [Locked] => 0
            [Weight] => 1
            [wxstatus] => 1
            [jctime] => 2019-05-14 12:01:14
            [DomainId] => 
        )

)

但是如果使用

$DomainListArray->oss

立刻就会报错

4年前 评论

file
报错的原因因该是:domain_record 表中没有跟domain匹配的一条记录,没有$DomainListArray->oss这个值

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!