2

次のエラーが表示されます。

Strict (2048): Declaration of CsvImportBehavior::setup() should be compatible 
with ModelBehavior::setup(Model $model, $config = Array) 
[APP\Plugin\Utils\Model\Behavior\CsvImportBehavior.php, line 20]

このサイトのチュートリアルに従いました: http://www.pronique.com/blog/enable-csv-import-all-controllers-models-cakephp-2

CSV ファイルをインポートすると、次のフラッシュ メッセージが表示されます。

Successfully imported 0 records from Book1.csv

インポートされない理由がわかりません。それが与えるエラー/警告と関係がありますか?

ビヘイビアの内部を調べました (CsvImportBehaviour.php の 20 行目): 20 行目ではclass CsvImportBehavior extends ModelBehavior {
意味がありません。これは単なるクラス宣言であるため、コードを下に移動すると、次のpublic function setup(Model &$Model, $settings = array()) {ように見えました。基準に従って。

4

1 に答える 1

3

エラー/警告を抑制するには、次のことを試してください。

  • &beforeを削除し$Modelます ( Model はオブジェクトであり、すでにbyrefに渡されているため不要です)

必要に応じて (@mark によるコメントを参照):

  • 名前$Model$model(小文字)に変更

  • に名前$settingsを変更$config

CSV からレコードをインポートしない理由がわかりません。これには、お客様側でのデバッグが必要です。

代替案

CakePHP にCSV dataSourceは、データソース プラグインの一部として もあります。

これを使用すると、データベースを使用する代わりに、ソースとして CSV ファイルを使用するモデルを作成できます。これにより、たとえば次のことが可能になります。

 $csvData = $this->MyCsvModel->find('all');

CSV ファイルからすべての行が返されます。これをデータベースにインポートすると$csvData、別のモデルに保存することで簡単に実装できます

リンク:

https://github.com/cakephp/datasources/tree/2.0 https://github.com/cakephp/datasources/blob/2.0/Model/Datasource/CsvSource.php

于 2013-04-18T20:38:44.843 に答える