GridFieldListの後に拡張機能を作成して、ModelAdminにUploadFieldを追加しようとしています。しかし、私はいつも、 "..../framework/forms/FormField.phpの非オブジェクト上のメンバ関数FormAction()をLine 161で呼び出す"というエラーを受け取ります。 TextField、DropdownFieldを問題なく追加できますが、UploadFieldでは不運です。 私は何かを見逃しましたか?SilverstripeがModelAdminにUploadFieldを追加できませんでした
<code>
class MyExtension extends Extension{
public static $has_one = array(
'ImportCSV' => 'File'
);
public function updateEditForm($form){
$fields = $form->Fields();
$fields->push(
new TextField('Title', 'Title')
);//This one works
$fields->push(
new UploadField('ImportCSV', 'Import CSV')
);//This one not working
}
}
</code>
Thxを実行いずれか、
UploadField
を追加するのではなく、、 @theruss。私はExtensionと混同しています。実際には、ModelAdminページに1つのUploadFieldと1つのButtonを追加しようとしています。ユーザーがCSVをアップロードしてボタンをクリックすると、DBの一部のレコードが変更されます。この場合、あなたは何か提案がありますか? – user1982312
私はあなたが何をしようとしているかを見ていると思う。そこにあるものを試してみて、修正してください: 'ReportAdmin'をコピーして名前を変更してください。 'getEditForm()'とは別にすべてを取り除き、カスタムフィールドとロジックで_that_を修正してください。 'ModelAdmin'に組み込まれているアップロードCSV形式(' CsvBulkLoader'クラスを参照)を変更し、必要に応じて変更することもできます。この種のことをカバーするsilverstripe.orgのチュートリアルがいくつかあります。しかし、いつものように、本質的に他の人のアイデアであるものを適応させ、あなたがしようとしているものに適合させるために、箱の外で少し考えなければなりません。 – theruss