2016-10-31 13 views
0

Laravelアプリケーションでは、softDeletes用に作成されたMySQLタイムスタンプフィールドdeleted_atがあり、デフォルト値はNULLです。値がNULLでない場合、Eloquentはデータを取得しません。 CSVファイルをインポートすると、ソースファイルのNULL値は0000-00-00 00:00:00になります。Laravelアプリケーションでは、mysql importはタイムスタンプのヌル値を0000-00-00に変換します00:00:00

私はMysql import transforms timestamp null values to 0000-00-00 00:00:00を読んでいます。\ Nは私のために働いていません。私は定期的にインポートする必要があるテーブルがたくさんあるので、これを修正する必要があります。助けてください。

+0

どのようにデータをインポートしていますか? –

+0

あなたが与えたリンクから2番目の答えに従ってください。それは助けるかもしれない。 – smartrahat

+0

私はphpMyAdminからインポートを使用し、csvファイルを選択しました。 – grigore16

答えて

0

MySQLでは厳密モードを無効にする必要があります。特に、モード名はSTRICT_TRANS_TABLESです。 /etc/mysql/my.cnf(またはWindowsの同じファイル)を開き、STRICT_TRANS_TABLESを見つけてコメントアウトします。

詳しい情報はこちら:

http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-strict

+0

私はxampp(mysql ver。15.1 Distrib 10.1.16-MariaDB)を使用しています。私はmy.cnfファイルを持っていません。 my.iniファイルにはSTRICT_TRANS_TABLESは存在しません。私はhttps://mariadb.com/kb/en/mariadb/timestampを読んでいますが、私の問題を解決することはできません。 – grigore16

0

私はあなたがあなたののconfig/database.phpでファイルが表示されるはずだと思います。このファイルには、厳格モードをオン/オフできる変数が含まれています。

Laravelでは、mysqlモードを有効/無効にする機能が追加されました。この新機能により、Laravelは次の3つのことを実行できるようになりました。 "strict"モードを無効にして、< = 5.6の動作に戻ります。 "strict"モードを有効にし、5.7の動作に設定します。どのモードが有効になっているかを正確にカスタマイズすることができます。あなたのファイルに

コードはこのように書きます...

あなたが他のstrictモードを無効にしたい場合はこの値をfalseに設定し
'mysql' => [ 
     'driver' => 'mysql', 
     'host' => env('DB_HOST', 'localhost'), 
     'port' => env('DB_PORT', '3306'), 
     'database' => env('DB_DATABASE', 'forge'), 
     'username' => env('DB_USERNAME', 'forge'), 
     'password' => env('DB_PASSWORD', ''), 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
     'strict' => true, // <----- This variable sets the strict mode. 
     'engine' => null, 
    ], 

は、それが真のstrictモードを有効にしてください。 これはあなたの問題を解決するのに役立ちます。

+0

database.phpには 'strict' => falseがあります。 – grigore16

関連する問題