【问题标题】:Laravel - SQLSTATE[HY000]: General error: 1364Laravel - SQLSTATE [HY000]:一般错误:1364
【发布时间】:2021-09-10 01:17:30
【问题描述】:

如何解决这个问题?

SQLSTATE[HY000]:一般错误:1364 字段 'user_id' 没有 默认值(SQL:插入ptcstitledetailsduration, rewards, ad_link, hit, membership_id, updated_at, created_at) 值(查理·普斯,dfghjkl;', 10, 100, http://test.com/, 435, 1, 2021-06-27 18:48:44, 2021-06-27 18:48:44))

控制器:

    $this->validate($request, [

        'title'=> 'required|max:15',
        'details' => 'required|max:100',
        'duration' => 'required|numeric',
        'membership_id' => 'required',
        'ad_link' => 'required|url',
        'rewards' => 'required|numeric',
         'hit' => 'required|numeric'

    ]);
    $ptc = Ptc::create([

        'title' => $request->title,
        'details' => $request->details,
        'duration' => $request->duration,
        'rewards' => $request->rewards,
        'ad_link' => $request->ad_link,
        'hit' => $request->hit,
        'type' =>1,
        'count' =>0,
        'membership_id' => $request->membership_id,
    ]);

    session()->flash('message', 'The Paid To Click Has Been Successfully Created.');
    Session::flash('type', 'success');
    Session::flash('title', 'Created Successful');


    return redirect()->route('admin.ptcs.index');


}

【问题讨论】:

  • 查看更新的答案
  • 你能分享你的迁移文件吗?

标签: php laravel


【解决方案1】:

错误很明显。

字段“user_id”没有默认值。

在您的ptcs 表中,您有user_id,它没有默认值,并且您没有在您的php 端设置user_id 的值。

$ptc = Ptc::create([

        'title' => $request->title,
        'details' => $request->details,
        'duration' => $request->duration,
        'rewards' => $request->rewards,
        'ad_link' => $request->ad_link,
        'hit' => $request->hit,
        'type' =>1,
        'count' =>0,
        'membership_id' => $request->membership_id,
        'user_id' => //Give here an id for testing like 1235
    ]);

如果您的$request 对象具有user_id,请像其他对象一样设置它。

'user_id' => $request->name_of_your_user_id_parameter

根据您的评论,user_id 不能用于批量分配。

所以在你的 Ptc 模型类上你需要类似的东西;

class Ptc extends Eloquent {

    protected $fillable = array('user_id', 'title', 'description', ... other fields);

}

https://laravel.com/docs/4.2/eloquent#mass-assignment

或在您的表架构上设置默认值或可为空

【讨论】:

  • "SQLSTATE[23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败 (u797910348_testserver.ptcs, CONSTRAINT ptcs_user_id_foreign FOREIGN KEY (@987654337) @) REFERENCES users (id) ON DELETE CASCADE) (SQL: 插入ptcs (title, details, duration, rewards, ad_link, hit, hit, @、countmembership_iduser_idupdated_atcreated_at) 值 (Charlie Puth, dfghjkl;', 10, 100, server1.pesobucks.com, 435, 1, 0, 1, 0, 2021 -06-27 19:18:10, 2021-06-27 19:18:10)) ◀
  • 确保user_id 在您的Ptc 模型的可填充属性中。
  • @RandelJohnCabelin 该错误意味着您尝试插入到user_id 列中的值在users 表中不存在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 2019-05-06
  • 2021-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多