为什么laravel eloquent model在保存后没有id?

ava*_*sin 6 laravel eloquent

我有一个帐户模型.我按照以下方式定义并保存:

$account = new Account();
$account->email = $request->get('email');
$account->name  = $request->get('name');
$account->save();

dd($account->id) // null
Run Code Online (Sandbox Code Playgroud)

为什么帐户ID未更新?我使用autoincremental id字段.我在数据库中看到了记录.

Tim*_*sée 5

如果您的Account模型正在扩展Pivot而不是Model(作为枢轴模型),则默认情况下它不使用自动增量id。在这种情况下,您可能有两个选择。

显式设置自动增量主键:

class Account extends Pivot {
    protected $primaryKey = "id";
    public $incrementing = true;

    // -- snip --
}
Run Code Online (Sandbox Code Playgroud)

或者您可以将模型转换为扩展Model

class Account extends Model {}
Run Code Online (Sandbox Code Playgroud)


小智 4

您应该在模型上设置主键。

尝试将其插入到您的模型中:

protected $primaryKey = "id";
Run Code Online (Sandbox Code Playgroud)

  • 这是扩展“Model”时的默认设置,无需显式设置。 (2认同)