首页 > 解决方案 > Laravel - SQLSTATE [HY000]:一般错误:1364

问题描述

如何解决这个问题?

SQLSTATE[HY000]: 一般错误: 1364 字段 'user_id' 没有默认值 (SQL: 插入ptcs( title, details, duration, rewards, ad_link, hit, membership_id, updated_at, created_at) 值 (Charlie Puth, 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');


}

标签: phplaravel

解决方案


错误很清楚。

字段“ user_id”没有默认值。

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

$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

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


推荐阅读