這是我第一個使用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,所以我不知道我是否犯這樣的錯誤。如果所有設置都集中在一個地方,則更容易檢查所有設置。但是,單個表格不是一個選項,所以這就是爲什麼我卡在這裏並尋求幫助。順便謝謝你的時間,這個解決方案看起來不錯。 –