2015-04-08 14 views
1

我有一个配置表,其中包含大量的配置值, 如何创建一个可在laravel上全局使用的静态帮助程序/类?

例如,我与一个输入一个观点:

<input type="text" value="<?= SettingsHelper::getValue('my-settings-key'); ?>" />

和关闭过程我不想每次查询它,只是一个查询获取所有的配置值。

任何想法?

+0

使用雄辩的ORM并创建一个模型,然后随时可以随时创建该模型类的对象 –

+0

我有一个'设置'模型,但这是一个设置offcourse,我喜欢40-50设置,所以我正在寻找一个地方/方法来执行'Settings :: all()'并将其存储在全局可用的帮助程序中(用于控制器,视图等) – Broshi

+0

不能将所有设置存储在一个你称为配置表的表? –

回答

0

你可以像这样,

class SettingHelper { 

    protected $items; 

    public function get($key, $default = null) 
    { 
     if (empty($this->items)) 
     { 
      $this->loadSettingData(); 
     } 

     if (array_key_exists($key, $this->items)) 
     { 
      return $this->items[$key]; 
     } 

     return value($default); 
    } 

    protected function loadSettingData() 
    { 
     $this->items = Setting::all()->lists('key', 'value'); 
    } 

} 

需要把这个类绑定集装箱与单身。

+0

这是我目前的帮手,事情是:我在哪里放置它,以便在laravel中全局可用,并且像使用'SettingsHelper :: get('key')'的外观一样使用',希望我不会错过任何东西流量。 – Broshi

+0

首先,您需要制作ServiceProvider类并添加config/app.php提供程序。 第二个使门面设置和添加config/app.php别名 这是pastebin上的示例 http://pastebin.com/NyGFT6ri –

+0

看起来不错,不好意思挖掘它!谢谢! – Broshi