首页 > 解决方案 > Laravel 根据外键向对象添加值

问题描述

我有一个名为 diagnoses. 它有一个 disease_id 和一个 visit_id。我正在尝试从表 A 中返回诊断以及疾病名称和访问详细信息。我不断收到 sql 语法错误。是否有推荐的方法将对象推送到数组?

我的代码是

public function diagnosis_diseases(Disease $disease) {

        $id = $disease->id;

        $items = DB::select(DB::raw('SELECT * FROM diseases WHERE diseases.id = '.$id.'  ;'));
        foreach($items as $item){
            $diagnosis = DB::select(DB::raw(' select * from diagnoses
                   where disease_id = '. $id.';' ));

            $items->push($diagnosis);
        }

        dd($items);

    } 

标签: arrayslaravel

解决方案


您可能需要使用内部联接:

public function diagnosis_diseases(Disease $disease) {

        $id = $disease->id;

        $items = DB::select(DB::raw('SELECT * FROM diseases WHERE diseases.id = '.$id.'  ;'));
        foreach($items as $item){
            $diagnosis = DB::select(DB::raw(' select * from diagnoses
                   inner join diseases on diagnoses.id = ' .$id' '));

            $items->push($diagnosis);
        }

        dd($items);
    } 

推荐阅读