如何合并2个对象的Laravel

时间:2019-08-03 11:33:59

标签: php html laravel laravel-blade

我正在使用table函数从first() A获取数据,并对table B进行了同样的操作,我需要将一个变量传递给blade,该变量包含两个表中的数据,我该怎么办?

我已经尝试过merge()函数,但是我做不到。

public function index(){
    $mahasiswa= mahasiswa::where('npm',Session::get('npm'))->first();

    if($mahasiswa->Agama=="Islam"){
        $agama=agama_islam::where('npm',Session::get('npm'))->first();
    }
    else if($mahasiswa->Agama=="Kristen Protestan"){
        $agama=agama_kristen::where('npm',Session::get('npm'))->first();
    }
    else if($mahasiswa->Agama=="Kristen Katolik"){
        $agama=agama_katolik::where('npm',Session::get('npm'))->first();
    }
    else if($mahasiswa->Agama=="Hindu"){
        $agama=agama_hindu::where('npm',Session::get('npm'))->first();
    }
    else if($mahasiswa->Agama=="Buddha"){
        $agama=agama_buddha::where('npm',Session::get('npm'))->first();
    }

    if($agama==NULL){
        return view('biodata',['mahasiswa'=>$mahasiswa]);
    }else{
        $mahasiswamerge=$mahasiswa->merge($agama);
        return view('biodata',['mahasiswa'=>$mahasiswamerge]);
    }

}

1 个答案:

答案 0 :(得分:2)

您必须使用推送而不是合并。如果两个对象上的ID相同,则一个对象将覆盖另一个对象。试试

$mahasiswamerge = collect();
$mahasiswamerge->push($mahasiswa);
$mahasiswamerge->push($agama);
return view('biodata',['mahasiswa'=>$mahasiswamerge]);