2017-10-09 3 views
0

Ich versuche Tinker zu verwenden, um die Tabellen meines Projekts zu manipulieren, also, das erste Problem, das ich habe, ist, dass ich eine utf8 kodierte Datenbank erstellt habe und danach meine Migrationen ausführe Dann verwenden die erstellten Tabellen utf8mb4_unicode_ci. Sollten sie nicht standardmäßig utf8 sein? Wenn ja, wie ändere ich das?Kodierung mit Tinker und Laravel

Das zweite Problem ist, dass, wenn ich versuche, Wörter in meine lokale Sprache (brasilianische Portugiesisch) auf einer Tabelle, mit Tinker, ich bekomme einen Fehler durch diese Zeichen. Wie folgt aus:

Illuminate\Database\QueryException with message 'SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xA1tulo ...' for column 'title' at row 1 (SQL: insert into `posts` (`title`, `body`, `updated_at`, `created_at`) values (Título 1, Corpo do primeiro post, 2017-10-09 14:58:40, 2017-10-09 14:58:40))' 

Muss ich meine Kesselflicker lokalen Sprache machen akzeptieren oder muss ich auf das Projekt jede enconding Änderung vornehmen?

Mein Post Migrationscode:

use Illuminate\Support\Facades\Schema; 
use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreatePostsTable extends Migration 
{ 
    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('posts', function (Blueprint $table) { 
      // $table->charset = 'utf8'; 
      // $table->collation = 'utf8_general_ci'; 
      $table->increments('id'); 
      $table->string('title'); 
      $table->mediumText('body'); 
      $table->timestamps(); 
     }); 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::dropIfExists('posts'); 
    } 
} 

Auf Kesselflicker das ich so mache:

$post = new App\post(); 
$post->title = 'Título 1'; 
$post->body = 'Corpo do primeiro post'; 
$post->save(); 

Dies ist das erste Mal, dass ich Laravel bin mit, so dass ich bin ein bisschen hat verloren.

+0

Sie bitte zeigen, wie der Code so können wir –

+0

Hallo helfen, ich die Frage mit dem Code meiner Beitrag Migration bearbeiten und was ich auf Tinker zu tun. – churros

Antwort

0

Versuchen Sie, diese Zeilen zu Ihrer 'config/database.php' Datei hinzuzufügen und versuchen Sie es erneut.

'charset' => 'utf8', 
'collation' => 'utf8_unicode_ci' 
+0

Das hat die Sortierung meiner Tabellen gelöst. Jetzt verwendet nur die Migrationstabelle noch die utf8mb4_unicode_ci-Bestätigung. Das Tinker-Encoding-Problem wird fortgesetzt. – churros