Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从laravel中的json对象获取关系数据_Php_Json_Laravel - Fatal编程技术网

Php 如何从laravel中的json对象获取关系数据

Php 如何从laravel中的json对象获取关系数据,php,json,laravel,Php,Json,Laravel,我有两种型号。主题2.条件。在这两者之间,我有1对1的关系。现在在这种情况下,我有一个外键subject\u id和d,它是json格式。现在,我想获取以json格式subject_id存储的subject name Subject.php class Subject extends Model { protected $fillable=['name','department_id']; public function condition() { ret

我有两种型号。主题2.条件。在这两者之间,我有1对1的关系。现在在这种情况下,我有一个外键subject\u id和d,它是json格式。现在,我想获取以json格式subject_id存储的subject name Subject.php

class Subject extends Model
{
    protected $fillable=['name','department_id'];
    public function condition()
    {
        return $this->hasOne(Condition::class);
    }
}
Condition.php

class Condition extends Model
{
    protected $fillable=['subject_id','department_id','total'];

    protected $casts=['subject_id' => 'array']

    public function subject()
    {
        return $this->belongsTo(Subject::class);
    }
}
在这里,我尝试获取所有主题名称表单json id的

$condition=Condition::find(4);
        foreach ($condition->subject_id as $key => $subject) {
            $list[]=$subject->subject->name;
        }
        dd($list);
我想知道是否可以从json id中检索主题名称,如果可以,请帮助我获取。

试试这个:


嘿,我有一个想法得到这个结果,就像下面使用

$condition=Condition::find(4);
        $subjects=Subject::whereIn('id',$condition->subject_id)->get();
        dd($subjects);

如果有人有更好的方法得到这个结果,请告诉我们

它会给我错误,比如为foreach()提供的参数无效。为什么在subject_id字段中使用json格式?你为什么不使用整数呢?我有一个条件,就像你有三门学科物理、数学和化学,要注册一个系,我必须在这三门学科中获得50/60的分数,所以工作正常,兄弟,它说试图获得非对象的属性“subject\u id”
var\u dump($condition->subject)
?外键的输出是什么“json格式。”这是什么意思?无论你在做什么,都是错的。
$condition=Condition::find(4);
        $subjects=Subject::whereIn('id',$condition->subject_id)->get();
        dd($subjects);