加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 在Laravel 5中创建“设置”模型的最佳做法是什么?

发布时间:2020-12-14 19:40:10 所属栏目:大数据 来源:网络整理
导读:这是我使用Laravel的第一个项目(我从5.2开始).我正在建立一个自我管理的网站.有一个管理员应该保存网站设置,以便以后在网站上使用.例如:背景颜色,社交网络,带图片的旋转木马,产品等. 我的第一次尝试是使用:id |创建模型“Setting”键(唯一)|值.当我试图保
这是我使用Laravel的第一个项目(我从5.2开始).我正在建立一个自我管理的网站.有一个管理员应该保存网站设置,以便以后在网站上使用.例如:背景颜色,社交网络,带图片的旋转木马,产品等.

我的第一次尝试是使用:id |创建模型“Setting”键(唯一)|值.当我试图保存社交网络(显示在网站标题中)时,我意识到我必须用URL,标题等保存“值”json …关系模型的丑陋实现,所以我来到结论是不好的.我创建了一个sepparated模型SocialNetwork:id |网址|图片|名称.

现在我正在考虑在我的BaseController中一次加载所有这些模型,所以我可以通过所有控制器,但我不确定它是否正确.我的意思是,一个数组$设置与所有模型作为其一部分:

abstract class BaseController extends Controller
{
    protected $settings;
    ...

    public function __construct(...)
    {
        $this->settings = [
            'backgroundColor' => 'red','socialNetworks' => SocialNetwork::all(),'other' => Other::all(),...
        ]
    }
}

这对我来说看起来很可怕,但是我迷失了这个框架,我不知道我能做些什么才能解决这个问题.
有人告诉我有关服务提供商的信息,但我正在试图弄清楚它的优势以及能够利用这些模型(保存数据)的最佳方法,而我却得不到它.

我不是要求明确的代码(但这会很好),我会在理解了这个方法之后进行调查,但是我会非常感激一些提示或概念上的帮助.

谢谢!

解决方法

这是一个很好的问题.最近我为我的Code Canyon产品( Krisma CMS Script)做了一个,我的方法如下.

1)创建了服务提供商

public function boot()
    {
        $this->header();
        $this->intro();
        $this->about();
        $this->resume();
        $this->portfolio();
        $this->services();
        $this->stats();
        $this->contact();
        $this->footer();
        $this->section();
        $this->codesetting();
        $this->customizer();
    }

在引导中调用的每个函数都在引导函数下面的Provider类中声明.
例如,对于标题部分我通过标题模型从数据库中获取数据并在全局共享,可以在应用程序的任何位置访问.

$section = Section ::find(1);
view()->share('section ',$section);

2)为每个部分创建一个表,即about,intro等,并插入我想要修改的值.

3)现在,在管理面板中,创建一个表单以进行更改/修改,并更新所需的部分属性.

4)获取视图中的数据.假设用户已将背景颜色从管理面板更改为RED,请在视图样式中打印出该变量:{{$sectionname-> color}}

5)我希望它能让你更好地了解如何实现设置,我为我的产品做了这个,可能有更好的方法,但到目前为止,这是我在研究中发现的,对我来说非常适合.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读