2014-04-14 41 views
1

我正在嘗試通過使用company_name列創建表設置來創建我的設置頁面。我的想法是獲取單個值company_name並將其打印在頁面的標題和名稱將出現的位置。我只是不確定如何將數組返回從DB :: select轉換爲能夠正確打印。使用laravel從數據庫中提取並打印單個值

代碼:

public function __construct() 
{ 
    $company_name = DB::table('settings')->select('company_name')->get(); 

    return View::share('company_name', $company_name); 
} 

而且在刀片系統打印爲{{$ COMPANY_NAME}},雖然不能數組轉換爲字符串。

回答

1

要麼使用佞(我會建議),這將是這樣的:

$company_name = Setting::first()->company_name; 

或使用流利的:

$company_name = DB::table('settings')->company_name; 
+0

太棒了!我真的接近那個使用雄辯 $ company_name = Setting :: where('id','=','1') - > firstOrFail(); 我現在唯一關心的是它打印爲: {「company_name」:「NOMBRE DE EMPRESA」} –

+0

我的不好,我編輯了這個應該現在肯定工作的答案 – alxscms

0

您可以使用->first()從返回的集合中選擇第一個值嗎?

+0

如果你有在你的設置中有多個條目,你可以使用' - > where($ id,$ _COOKIE [「Session Id「])'並在表中添加一個'SessionID'列。 – Chrisky

+0

返回一個「類stdClass的對象無法轉換爲字符串」 –

0

我認爲你應該重新考慮你的數據庫模式。

但是如果你想要的答案與你方保持當前的模式工作:

DB::table('settings')->select('company_name')->first(); 

這可以拋出一個雄辯ModelNotFound例外。

編輯

public function __construct() 
{ 
    $result = DB::table('settings')->select('company_name')->first()->toArray(); 

    return View::share($result); 
} 
+0

不幸的是,這也不起作用。它實際上返回一個errorBadMethodCallException 調用未定義的方法Illuminate \ Database \ Query \ Builder :: firstOrFail() –

+1

你是對的@ LucasGomez!我今天學到了東西! [查詢生成器](https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Query/Builder.php)沒有該方法。另一個使用雄辯的理由。改用' - > first()'方法。 – hannesvdvreken

+0

是的,我讀它只適用於使用雄辯模型,我實際上是這個設置(主要更新)。使用first();返回「stdClass類的對象無法轉換爲字符串」 –

相關問題