Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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
Orm 获取记录的所有关系_Orm_Laravel_Eloquent - Fatal编程技术网

Orm 获取记录的所有关系

Orm 获取记录的所有关系,orm,laravel,eloquent,Orm,Laravel,Eloquent,如果我在我的应用程序中定义了一个雄辩的模型,它与其他模型类型建立了许多不同的关系,那么我如何在不知道我正在处理的模型的任何其他信息的情况下获得所有这些关系的信息 例如,想象一个简单的事务模型,它可以有许多行,也属于一个用户 现在,给定事务模型的一个实例(填充的或未填充的),我如何找出它与其他模型之间的关系 我不想检索实际的相关数据,我只想找出每个关系所指的类,以及它是否是一对多、多对多等等 谢谢你的建议 感谢Laravel雄辩的模型没有以这种方式工作,关系是由模型中的方法定义的,并且在实例化时不

如果我在我的应用程序中定义了一个雄辩的模型,它与其他模型类型建立了许多不同的关系,那么我如何在不知道我正在处理的模型的任何其他信息的情况下获得所有这些关系的信息

例如,想象一个简单的事务模型,它可以有许多行,也属于一个用户

现在,给定事务模型的一个实例(填充的或未填充的),我如何找出它与其他模型之间的关系

我不想检索实际的相关数据,我只想找出每个关系所指的类,以及它是否是一对多、多对多等等

谢谢你的建议


感谢

Laravel雄辩的模型没有以这种方式工作,关系是由模型中的方法定义的,并且在实例化时不会由模型自动加载,因此当您想要使用特定关系时,需要实际调用这些方法

当您实例化一个models类时,它没有定义任何关系。这可以通过以下方式显示:

$user = new User();

print_r($user->getRelations());

//Output : empty array
正如您所看到的,该模型完全不知道它可能在关系方法中声明或未声明的任何关系。调用模型关系时:

$user = new User();

$user->find(1)->roles()->get();
Eloquent使用方法
setRelation($relation,$value)
在模型上设置关系,该方法将被调用方法的名称作为第一个参数,并将该方法的返回作为第二个参数。因此,在您明确要求之前,为不存在的关系提供上下文


我知道这不是你希望听到的,但用雄辩的语言是无法做到的。

不幸的是,这个答案是正确的。这是不可能的雄辩。