【发布时间】:2016-09-25 00:20:00
【问题描述】:
您好,我正在使用 Laravel 开发一个站点,并且有一些站点数据 id 可以跟踪,例如 facebook url、instagram url、地址、电话号码等。此模型的此信息作为名称和值存储在DB,所以示例名称:facebook 和值:[facebook url here]。我知道我可以检索所有模型并获取一个集合,将其传递给我的视图并循环遍历它们,但我喜欢更多的控制来获取特定模型以在页面的特定部分需要它们的地方使用它。这是我目前拥有的:
我有一个模型 SiteMeta,我将一个实例传递给我的视图:
$site_meta = new \App\SiteMeta();
return view($page_string)->with('site_meta',$site_meta);
在我的 SiteMeta 模型中:
public static function get($name)
{
return SiteMeta::where('name', '=', $name)->firstOrFail();
}
然后在我看来,我通过它的名称来获取我的特定模型:
<a target="_blank" href="{{$site_meta::get('Facebook')->value}}">
<i class="fa fa-facebook-official data-icon" aria-hidden="true"></i>
</a>
所以我的问题是,这是最有效的方法吗?我在联系页面上的各个地方执行此操作以显示电话号码和地址等信息以及我觉得有点超载的其他站点信息,因为每次我执行 sitemeta::get('name' );
有没有更好的方法从 BLADE 的集合中获取特定的一个?谢谢
【问题讨论】:
标签: laravel collections model eloquent