SQLSTATE[HY000]:一般错误:1364field‘ategory_id’没有默认值(SQL:INSERT INTO
gm
(type
,gram
,carat
,price
,file
,updated_at
,created_at
)值(bn-0003dw,3,0,2115000,1662456904_BN-0003DW.jpg,2022-09-06 16:35:04,2022-09-06 16:35:04))
我想将 Select 选项表单插入到数据库中,但出现了上面的错误.
这是我从关系数据库中 Select 选项的Blade 代码.
<select class="form-control" name="category_id">
<option value="option_select" disabled selected>Choose</option>
@foreach ($category as $ct)
<option value="{{$ct->id}}" {{old('category_id') == $ct->id ? 'selected' : ''}}>{{$ct->category_name}}</option>
@endforeach
</select>
这是用于插入到数据库中的控制器代码.
public function create()
{
$category = Category::all();
return view('backend.pages.create', compact('category'));
}
public function createact(Request $request)
{
$this->validate($request,[
'type' => 'required|alpha_dash',
'category_id' => 'required|numeric',
'gram' => 'required|numeric',
'carat' => 'required|regex:/()+/',
'price' => 'required|numeric',
'file' => 'required|file|image|mimes:jpeg,jpg|max:1048'
]);
// Menyiapkan data gambar yg diupload ke variable $file
$file = $request->file('file');
$file_name = time()."_".$file->getClientOriginalName();
// Isi dengan nama folder tempat kemana file diupload
$upload_directory = 'p_gm';
$file->move($upload_directory, $file_name);
Goldmart::create([
'type' => $request->type,
'category_id' => $request->category_id,
'gram' => $request->gram,
'carat' => $request->carat,
'price' => $request->price,
'file' => $file_name
]);
return redirect('/gm');
}
这是我的通用汽车模型.
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Gm extends Model
{
use SoftDeletes;
protected $table = "gm";
protected $fillable = ['type', 'category', 'gram', 'carat', 'price', 'file'];
protected $dates = ['deleted_at'];
public function category()
{
return $this->belongsTo('App\Category');
}
}
这是我的Category模型.
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
protected $table = "category";
protected $fillable = ['category_name'];
public function gm()
{
return $this->hasOne('App\Gm');
}
}
我试着在gm表中将CATEGORY_ID的值更改为Null,错误没有出现,但是CATEGORY_ID没有从CATEGORY表中填充id,但是Null.结果类别列为空.