从Laravel的BLADE中的集合中获取特定模型的最有效方法

时间:2016-05-26 20:21:52

标签: laravel collections model eloquent

我正在开发一个使用Laravel的网站,并且有一些网站数据ID,如跟踪facebook url,instagram url,地址,电话号码等。此模型的此信息存储为名称和值在DB,所以示例名称:facebook和value:[facebook url here]。我知道我可以检索所有的模型并获得一个集合,将它传递给我的视图并循环遍历它们,但是想要更多的控制来获取特定模型以便在页面的特定部分需要它们时使用它们。这就是我目前所拥有的:

我有一个模型SiteMeta,我将一个实例传递给我的视图:

time.Sleep

在我的SiteMeta模型中:

$site_meta = new \App\SiteMeta();
return view($page_string)->with('site_meta',$site_meta);

然后在我看来,我的名字得到了我的特定模型:

public static function get($name)
{
    return SiteMeta::where('name', '=', $name)->firstOrFail();
}

所以我的问题是,这是最有效的方法吗?我在联系页面上的各个地方这样做,以显示电话号码和地址等信息,以及我觉得有点过载的信息,因为每当我做sitemeta :: get时都会向数据库发出请求(&#39) ;名称&#39);

有没有更好的方法从BLADE的系列中获取特定的一个?感谢

1 个答案:

答案 0 :(得分:0)

我会从控制器方法中将其作为数组传递:

setViewControllers:animated:

在您的刀片模板上,您可以执行此操作:

$site_meta = \App\SiteMeta::lists('value', 'name');

return view($page_string, compact('site_meta');