組み込みのCSVインポートではdocumentationを見てから、ModelAdminにカスタムCsvBulkUploaderを追加する方法はまだわかりません。 add the default uploaderをどうやって簡単にできるのか、どのようにすればcreate a custom controller for importingでもいいのですが、これをModelAdminにどのように追加するのかは分かりません。私はStack OverflowとSilverStripeコミュニティフォーラムを見ながら朝を過ごしましたが、まだ何かを見つけることができませんでした。いずれの方向にも大いに感謝します!SilverstripeのModelAdminにカスタムCsvBulkUploaderを追加する
答えて
私はそれを理解しました。あなたは$model_importers
でそれを宣言することによって、あなたのModelAdminのにCSVバルクローダーを追加することができます
:
<?php
class PlayerAdmin extends ModelAdmin {
private static $managed_models = array(
'Player'
);
private static $model_importers = array(
'Player' => 'CsvBulkLoader',
);
private static $url_segment = 'players';
}
?>
そしてCSV Importマニュアルに示されているように、あなたはCsvBulkLoader
クラスを拡張することができます。たとえば、次のように明示されていなかったものをドキュメントで
<?php
class PlayerCsvBulkLoader extends CsvBulkLoader {
public $columnMap = array(
'Number' => 'PlayerNumber',
...
);
public $duplicateChecks = array(
'Number' => 'PlayerNumber'
);
public $relationCallbacks = array(
'Team.Title' => array(
'relationname' => 'Team',
'callback' => 'getTeamByTitle'
)
);
public static function getTeamByTitle(&$obj, $val, $record) {
return FootballTeam::get()->filter('Title', $val)->First();
}
}
?>
あなたは単にあなたのModelAdminの中で$model_importers
にそれを追加することによって、新しい拡張バルクローダの中で引っ張るということでした。だからCsvBulkLoader
の代わりにPlayerCsvBulkLoader
を使用します。スニペットアップトップはthusly改訂されるだろう:
<?php
class PlayerAdmin extends ModelAdmin {
private static $managed_models = array(
'Player'
);
private static $model_importers = array(
'Player' => 'PlayerCsvBulkLoader',
);
private static $url_segment = 'players';
}
?>
かなりシンプル。私は早い段階でこのアプローチを試みましたが、サブクラスの名前のスペルが間違っていました!
UPDATE:ちょうどSilverStripe's documentation
ニース! '明示されていなかったことは、拡張された新しいバルクローダを引っ張ったということでした。あなたが利益を得ると思うなら、ドキュメントを更新するためのプルリクエストを提出することができます! –
@RobbieAverillの提案に感謝します!私は[プルリクエスト](https://github.com/silverstripe/silverstripe-framework/pull/6983)を提出しました。 – JustinTBrown
- 1. SilverStripe ModelAdmin(シングルタブ)
- 2. SilverstripeがModelAdminにUploadFieldを追加できませんでした
- 3. SilverStripe ModelAdminのメニュータイトル翻訳
- 4. SilverStripe ModelAdmin検索を削除する
- 5. SilverStripe。 ModelAdminの日付範囲で検索
- 6. Silverstripe:モジュールからカスタムcss/jsを追加する方法
- 7. SilverstripeのModelAdminにデフォルトでフィルタフォームを表示します。
- 8. 関連するSilverstripeテーブルのModelAdminカラムのソート
- 9. はどのように動的にSilverStripe ModelAdminの
- 10. DjangoのModelAdminに条件フィールドを追加するには?
- 11. Silverstripe tinyMCEカスタムプラグインを追加
- 12. SilverStripeフォームにGoogle Recaptchaを追加
- 13. SilverStripe CMSカスタムCSS
- 14. Django modeladminの一番下にビューを追加します
- 15. Silverstripe ModelAdminのファイル関係は発行しません
- 16. SilverStripe 3.xのページ名の前にパラメータを追加する
- 17. Silverstripe - モジュールへのカスタム変更
- 18. Silverstripe User FormsモジュールにアップロードFileFieldを追加する方法
- 19. silverstripe CMS内では、TextareaField内にタブを追加します。
- 20. Silverstripe CMSで新しいメニュー項目を追加する
- 21. カスタム言語をローカライゼーションに追加する
- 22. GridViewテーブルにカスタム行を追加する
- 23. UINavigationBarにカスタムUIBarButtonItemを追加する
- 24. IOS:カスタムMKAnnotationviewにイメージを追加する
- 25. コントローラにカスタムViewLocatorを追加する
- 26. Jenkins:mavenプロジェクトにカスタムjarを追加する
- 27. PyLatexカスタムusepackageを追加するには
- 28. Vaadin:ブートストラップページにカスタムjavascriptを追加する
- 29. カスタムUITableViewCellを動的に追加する
- 30. ggplotにカスタム色を追加する
ないあなたの質問に直接答えにこれを追加しましたが、インポート・エクスポート・モジュールに見てみたいことがあります(https://github.com/burnbright/silverstripe-importexport) 。デフォルトのインポーターよりもパフォーマンスが大幅に改善されており、大きなデータセットをインポートするときにはかなり安定しているようです。 – PsychoMo