这是我第一个使用Laravel的项目(我以5.2开头)。我正在建立一个自我管理的网站。有一个管理员应该保存网站设置以便稍后在网站中使用。例如:背景颜色,社交网络,带图片的旋转木马,产品等。创新Laravel 5中的“设置”模型的最佳实践是什么?
我的第一次尝试是创建一个模型“设置”:id |键(唯一)|值。当我试图保存社交网络(显示在网站标题中)时,我意识到我必须通过URL,标题等来保存json的“价值”......针对关系模型的丑陋实现,所以我来了结论是不好的。我用:id |创建了一个sepparated模型SocialNetwork URL |图像|名称。
现在我想在我的BaseController中一次加载所有这些模型,所以我可以通过所有控制器,但我不知道它是正确的。我的意思是,所有型号的数组$设置,它的一部分:
abstract class BaseController extends Controller
{
protected $settings;
...
public function __construct(...)
{
$this->settings = [
'backgroundColor' => 'red',
'socialNetworks' => SocialNetwork::all(),
'other' => Other::all(),
...
]
}
}
它看起来horripilant给我,但我用这个框架失去了,我不知道什么是我可以做些什么来对付最好有了这个。 有人告诉我有关服务提供者,但我想弄清楚它的优点以及能够使用这些模型(保存数据)的最佳方法,但我不明白。我不是要求明确的代码(但它会很好),我会在了解该方法后对其进行调查,但是一些提示或概念上的帮助将会非常感谢。
谢谢!
谢谢,这是有道理的。如你所说,我看到你直接将数据分享到boot下的每个声明函数的视图中。我的问题是:你如何访问每个实例在控制器内部工作?有没有一种“干净”的方式,让他们在一个单一的对象,如“设置”?更重要的是,它会好吗?我的意思是,我喜欢按照有序的方式工作,每个事物属于一个组(如果需要的话),我认为它应该是一个组的一部分。你怎么看? –
首先,当您像上述方法共享对象时,您可以在任何地方访问它,例如在Controller中或在视图中的天气。第二你说如果你想访问它只是从设置(一个对象),可以完成,如果你想保存所有的字段在一个表中,然后分享它,但如果你有很多部分,在我的情况下,我会建议不同的桌子。而且你说过它会好吗?我会说我用在我的产品中,该产品经过codecanyon和codecanyon的批准,具有很高的标准和良好的代码标准。 +可能有比这更好的方法。 –
我的意思是,它看起来更好(只是对我来说,因为我认为它是一个保存在数据库中的大配置),如果它是具有属性和嵌套对象的单个对象......但我不知道Laravel,所以我不知道我是否犯这样的错误。如果所有设置都集中在一个地方,则更容易检查所有设置。但是,单个表格不是一个选项,所以这就是为什么我卡在这里并寻求帮助。顺便谢谢你的时间,这个解决方案看起来不错。 –