Schema::create('users', function (Blueprint $table) {<br>
$table->primary('email');<br>
$table->string('name');<br>
$table->string('image_url');<br>
$table->string('signin_with');<br>
});
上記は私のデータベーススキーマです。Laravel 5.2 - 'id'の代わりにプライマリキーをメールに設定
私のユーザーはです。
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Users extends Model
{
protected $table = 'users';
public $incrementing = false;
protected $primaryKey = 'email';
protected $fillable = [
'email', 'name' ,'image_url', 'signin_with'
];
}
私の質問は、ユーザーのテーブルのプライマリキーとして 'email'属性を作りたいと思っています。しかし、私は
のQueryException SQLState [42S01]のエラーを取得します。
どのように解決できますか?
ありがとうございます。
に基づいて
。主キーはインクリメントのためにも使用されるので、 'unique'として設定し、' index'を追加することをお勧めします。 – Peon
私は間違っている可能性がありますが、SQLState [42S01]はテーブルがすでに存在していることを私に示唆しています。あなたは完全なエラーメッセージを投稿できますか? – jeroen
私は 'unique 'にそれを割り当てることができるので、私は電子メールIDがnullであることを望んでいません。それはそのテーブルの電子メールの1つのエントリになります。他のテーブルの電子メールIDは「外部キー」と「複合キー」として必要です。 エラーが [照らしなさい\データベース\のQueryException] SQLSTATE [42S01]です:ベーステーブルまたはビューがすでに存在している:1050 –