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
我不希望電子郵件ID爲空,因爲我可以將其分配給「唯一」,那麼它將只是該表中的電子郵件的一個條目,但它也可以是空的,我不想要的東西。我需要在其他表中的電子郵件ID作爲「外鍵」和「組合鍵」。 該錯誤是 [照亮\數據庫\ QueryException] SQLSTATE [42S01]:基表或視圖已經存在:1050 –