【发布时间】:2016-05-30 13:14:12
【问题描述】:
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>
});
上面是我的数据库架构。
这是我的用户模型。
<?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'
];
}
现在我的问题是我想将“电子邮件”属性作为用户表中的主键。但我得到一个错误
QueryException SQLState[42S01]。
我该如何解决?
提前谢谢你。
【问题讨论】:
-
您可能不想将电子邮件设置为
primary key。很可能您希望将其设置为unique并添加index,因为主键也用于增量目的。 -
我可能是错的,但 SQLState[42S01] 向我建议该表已经存在。你能发布完整的错误信息吗?
-
我不希望电子邮件 ID 为空,因为我可以将其分配给
unique,那么它将只是该表中的一个电子邮件条目,但我不希望它也可以为空'不想。我需要其他表中的电子邮件 ID 为foreign key和composite key。错误是 [Illuminate\Database\QueryException] SQLSTATE[42S01]: Base table or view already exists: 1050
标签: javascript php ajax laravel laravel-5.2