fly*_*123 29 php laravel eloquent
在我的Laravel应用程序中,我有一个Faq模型.一个Faq模型可以包含很多Product的车型,所以在Faq类包含以下功能:
class Faq extends Eloquent{
public function products(){
return $this->belongsToMany('Product');
}
}
Run Code Online (Sandbox Code Playgroud)
在控制器中,我希望能够检索定义关系的类名.例如,如果我有一个Faq对象,像这样:
$faq = new Faq();
Run Code Online (Sandbox Code Playgroud)
如何确定关系的类名,在本例中为Product.目前我可以这样做:
$className = get_class($faq->products()->get()->first());
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否有办法在不必实际运行查询的情况下完成同样的事情.
Jar*_*zyk 83
是的,有一种方法可以获得相关模型而无需查询:
$className = get_class($faq->products()->getRelated());
Run Code Online (Sandbox Code Playgroud)
它适用于所有关系.
这将返回名称空间的全名.如果您只想使用基本名称:
// laravel helper:
$baseClass = class_basename($className);
// generic solution
$reflection = new ReflectionClass($className);
$reflection->getShortName();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56453 次 |
| 最近记录: |