在我的Laravel应用程序中,我有一个Faq
模型。一个Faq
模型可以包含许多Product
模型,因此Faq
该类包含以下功能:
class Faq extends Eloquent{
public function products(){
return $this->belongsToMany('Product');
}
}
在控制器中,我希望能够检索定义关系的类名称。例如,如果我有一个Faq
对象,例如:
$faq = new Faq();
如何确定关系的类名,在这种情况下为Product
。目前,我可以这样做:
$className = get_class($faq->products()->get()->first());
但是,我想知道是否有一种方法可以不必实际运行查询即可完成相同的操作。
是的,有一种无需查询即可获取相关模型的方法:
$className = get_class($faq->products()->getRelated());
它将适用于所有关系。
这将返回带有名称空间的全名。如果您只想使用基本名称,请使用:
// laravel helper:
$baseClass = class_basename($className);
// generic solution
$reflection = new ReflectionClass($className);
$reflection->getShortName();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句