當我在管理控制檯中創建GridField時 - 一切正常 - 我通過經典方法(例如Member :: get() - 或通過ArrayList填充gridfield -當不在公共函數中時,ArrayList不會填充ArrayList getCMSFields
$al1 = new ArrayList();
$records = DB::query("SELECT * from Member where id<10");
while ($rec = $records->next()) {
$al1->push(new ArrayData($rec));
}
$grid = new GridField('Pages', 'All pages', $al1)
兩種方法都 但是工作確定,如果我嘗試的用戶頁面上創建GridField - - 的形式呈現 - - 莫名其妙的第二個方法(其中GridField應該由ArrayList的填充 - 不工作)。
$gridField = new GridField('pages1', 'All pages1', Member::get(), $config);
- 炒鍋好的,但米ethod在那裏我創建的ArrayList老式的方法:
$al = new ArrayList();
$records = DB::query("SELECT * from Member where id<10");
while ($rec1 = $records->next()) {
$al->push(new ArrayData($rec));
}
我得到一個錯誤,當我試圖通過渲染gridfield:
return new Form($this, "AllSubmissions", new FieldList($gridField), new FieldList());
的錯誤,我得到的是:
[警告]缺少ArrayData :: _ construct()GET/ss340/gridfield-test/gridfield-underr-grid/Line 27中的ArrayData ::參數1:C:\ wamp \ www \ ss340 \ framework \ view \ ArrayData.php
因爲我需要外部數據庫的數據來填充非管理頁面上的網格,所以我非常渴望爲此獲得解決方案。 如果有人可以提供替代方法來顯示/編輯Silverstripe中的表格數據 - 非常感謝。
我很欣賞你的努力 - 但正如前面提到的,我想用外部數據庫的數據填充GridField,所以我不能使用ORM方法。我確實打開了error_reporting併發布了關於錯誤的答案。然而 - 仍然沒有意識到我可以使用經典方法在管理部分填充網格字段,但不能在用戶部分填充。問候 – Grega
我更新了我的答案。通過代碼,您可以在數據庫之間切換。 –