似乎有兩種最常用的方式將數據傳遞給視圖,雖然有幾個問題要求區分這兩個函數,但我沒有看到一個解釋它們是否可互換的單個計算器回答,它使用了更多經常和如果它們不可互換,在什麼情況下使用這兩種功能。緊湊()和()可互換嗎?
0
A
回答
7
compact()是一個標準的PHP函數,它從變量列表構建數組,將變量名稱指定爲數組元素鍵,將變量值指定爲數組元素值。它可以用作將變量傳遞給Laravel視圖的便捷方式,因爲Laravel的View::make()
將接受鍵/值對數組的第二個參數。 您可以輕鬆指定一組鍵/值對,但PHP的compact()
提供了一個簡單的方法來完成此操作。
$x = "Hello";
$y = "world";
$view = View::make('myViewName', compact('x', 'y');
相同
$x = "Hello";
$y = "world";
$view = View::make('myViewName', ['x' => $x, 'y' => $y]);
但compact()
您的變量必須已經存在。指定數組手動更靈活,因爲你可以做
$x = "Hello";
$y = "world";
$view = View::make('myViewName', ['salutation' => $x, 'addressTo' => $y]);
這將使變量稱爲$salutation
和$addressTo
刀片模板中,即使你原來的變量只是叫$x
和$y
。
,或者你甚至可以做
$view = View::make('myViewName', ['salutation' => "Hello", 'addressTo' => "world"]);
with()
是Laravel特有的,(在此查看建築上下文中),您可以指定單個鍵和值將被傳遞到視圖。主要區別在於,您可以將鍵名指定爲任何您想要的(與將自己構建的數組用作View::make()
的第二個參數的方式大致相同),並且該值可以是函數調用的直接返回值。
$x = "Hello";
$y = "world";
$view = View::make('myViewName')->with('x', $x)->with('y', $y);
或
$view = View::make('myViewName')->with('x', "Hello")->with('y', "World");
或
$view = View::make('myViewName')
->with('salutation', "Hello")
->with('addressTo', "World");
它基本上是與傳遞用戶構建的陣列View::make()
,但可以說是更可讀
在這兩種情況下,該鍵/值對(無論通過第二個參數指定爲View::make()
或使用with()
)在刀片模板內提取,密鑰用於元素名稱。
這兩種方法甚至可以一起使用。
相關問題
- 1. 緊湊楓
- 2. Nokogiri支持RelaxNG緊湊語法嗎?
- 3. TryFind有更緊湊的語法嗎?
- 4. 緊湊型會議
- 5. scipy.optimize緊湊約束
- 6. data.frame緊湊版本
- 7. System.Diagnostics.StackTrace緊湊框架
- 8. 佈局更緊湊
- 9. 超緊湊的css
- 10. 轉換帆布JS把結構緊湊
- 11. 保存網頁和緊湊的css
- 12. Vb.net緊湊框架和保存XML(app.config)
- 13. Windows工作流和緊湊框架
- 14. 面板和滾動條 - 緊湊框架
- 15. $此關鍵字和緊湊功能
- 16. ClickOnce部署可以與Windows Mobile和緊湊框架一起使用嗎?
- 17. 在緊湊和完整的.net框架之間切換編譯?
- 18. 緊湊所有遷移
- 19. 任務欄緊湊模式?
- 20. 用通配符(緊湊型)
- 21. 緊湊Famework鎖PDA屏幕
- 22. 緊湊的水平尺Matplotlib
- 23. Node.js Express緊湊腳本
- 24. iOS中的「緊湊」視圖
- 25. 緊湊型系列數據
- 26. CKEditor緊湊的HTML代碼
- 27. 緊湊級DSL在python
- 28. 緊湊的錯誤檢查
- 29. 的Javascript屬性緊湊
- 30. 緊湊懸停功能
兩者都沒有關係。 compact()是php函數,並且()是laravel函數。他們不可互換,閱讀文檔http://php.net/manual/en/function.compact.php –
@ZaheerAttar我明白,一個是PHP函數,另一個是Laravel函數,但他們似乎用於對於像我這樣的新手程序員來說,情況相同,情況相同,所以我想知道在什麼情況下使用哪個函數。 – Robert
'compact'是一個PHP函數,它可以執行任何userland函數實現可能模擬的事情。所以,'與'不可能做'compact'的同一件事,所以它們不能互換。 – deceze