관리 콘솔에서 GridField를 만들면 모든 것이 정상입니다. MemberList :: get() - 또는 ArrayList를 통해 고전적인 방법으로 gridfield를 채 웁니다.공용 함수가 아닌 경우 Gridfield가 ArrayList로 채워지지 않습니다.
$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를 만들려고하면 -. - 형태 - 2 - 어떻게 든 (GridField는 ArrayList에 의해 채워 져야합니다 - 작동하지 않는) 두 번째 방법을.
을$gridField = new GridField('pages1', 'All pages1', Member::get(), $config);
- woks ok,하지만 m 내가 ArrayList를 옛날 방식으로 만드는 경우 ethod :
$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/행 27 C : \ wamp \ www \ ss340 \ framework \ view \ ArrayData.php에 대한 누락 된 인수 1
관리자가 아닌 페이지에서 gridfield를 채우기 위해 외부 데이터베이스의 데이터가 필요하므로이 문제에 대한 해결책을 찾기 위해 필사적입니다. 누군가 Silverstripe에서 표 형식의 데이터를 표시/편집 할 수있는 대체 방법을 제공 할 수 있다면 매우 감사하겠습니다.
귀하의 노력에 감사 드리며 - 언급 한 바와 같이 GridField에 외부 DB의 데이터를 채우고 싶습니다. 따라서 ORM 메서드를 사용할 수 없습니다. error_reporting을 켜고 오류에 대한 답변을 게시했습니다. 그러나 - 여전히 고전적인 방법으로 관리 섹션에서 그리드 필드를 채울 수 있지만 사용자 섹션에서 채울 수 없습니다. 감사합니다 – Grega
내 대답이 업데이트되었습니다. 코드를 사용하여 데이터베이스간에 전환 할 수 있습니다. –