【问题标题】:Laravel type hinting, id return null on model saveLaravel 类型提示,模型保存时 id 返回 null
【发布时间】:2021-01-25 21:47:13
【问题描述】:

我正在尝试使用类型提示来存储值。

public function store(Model $model, ModelRequest $request) {
    $model->create($request->validated())->save();
    dd($model->id);
}

但是,Id 返回 null。

【问题讨论】:

  • create() 后无需调用 save()

标签: laravel eloquent laravel-7 type-hinting laravel-models


【解决方案1】:

正如@aimme 在评论中所说,您不需要 save() 方法。 save() 方法返回 truefalse

如果您真的需要查看附加内容:

$new_created= $model->create($request->validated());
dd($new_created->id);

如果它不起作用,那么你必须检查 $request->validated() 的返回:

dd($request->validated());

【讨论】:

    【解决方案2】:

    您实际上不能将 implicit route model binding 用于 store 方法,因为您无法通过 ID 访问尚不存在的模型(因此没有 ID)。来自官方文档:

    Laravel 会自动注入 ID 与请求 URI 中相应值匹配的模型实例。

    所以你必须手动创建模型,例如这样

     public function store(StoreUserRequest $request) {
        $user = User::create($request->all());
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 1970-01-01
      相关资源
      最近更新 更多