【问题标题】:Laravel, blank record using create methodLaravel,使用create方法的空白记录
【发布时间】:2018-06-08 13:44:47
【问题描述】:

我在 Laravel 中的 create() 方法有问题。 每次我尝试使用此代码在数据库中创建新记录时:

    $website = Website::create([
        'user_id' => auth()->user()->id,
        'name' => $request->name,
        'url' => $request->url,
        'description' => $request->description,
        'subcategory_id' => $request->subcategory_id,
        'user_id' => $request->subcategory_extra_id,
    ]);

user_id 列(在数据库中)等于 0,而我的 id 是 1。当然我的模型中有可填充变量:

    protected $fillable = [
    'user_id',
    'name',
    'url',
    'description',
    'subcategory_id',
];

我尝试使用常量值而不是 auth()->user()->id 但数据库中的 user_id 仍然为 0。使用 save() 方法可以解决这个问题,但我更喜欢使用 create()。

【问题讨论】:

  • 试试dd(auth()->user()->id)dd(auth()->id()) 是不是给你正确的价值?

标签: php laravel


【解决方案1】:

您在密钥中列出了两次user_id。第二次,整数为空。

'user_id' => $request->subcategory_extra_id,
//observe

【讨论】:

  • 没注意到...谢谢!
【解决方案2】:

为什么您在代码中使用了两次'user_id? 一个是

'user_id' => auth()->user()->id, 

另一个是

'user_id' => $request->subcategory_extra_id,

只需使用一个而不是两个。并尝试使用以下方式:

'user_id' => Auth::user()->id;

记住:在这种情况下,你必须 use Auth 类的命名空间。

希望能成功

【讨论】:

    【解决方案3】:

    尝试使用这个 使用 Auth 命名空间 然后

    $website = Website::create([
            'user_id' => Auth::user()->id,
            'name' => $request->name,
            'url' => $request->url,
            'description' => $request->description,
            'subcategory_id' => $request->subcategory_id,
        ]);
    

    【讨论】:

      猜你喜欢
      • 2016-09-06
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多