Я хочу вставить данные в базу данных, но когда я запускаю функцию, она не работает и не выдает ошибку, данные не вставляются в базу данных, но не показывают ошибку? почему я должен это делать?
public function index(){
$data_subgroup = \App\Subgroup::all();
$data_category = \App\Module::all();
return view('/dashboard/subgroup', ['data_subgroup' => $data_subgroup,
'data_category' => $data_category,
]);
}
public function create(Request $request){
$this->validate($request, [
'subgroup_logo' => 'file|image|mimes:jpeg,png,jpg|max:2048',
'subgroup_name' => 'required',
'module_id' => 'required'
]);
$subgroup_logo = $request->file('subgroup_logo');
$filename ='subgroups/' . time() . '.' . $subgroup_logo->getClientOriginalExtension(); //Memecah Filename
Image::make($subgroup_logo)->resize(200, 200)->save( public_path('/uploads/' . $filename)); //Resize dan Save Avatar ke Database
Subgroup::create([
'subgroup_logo' => $filename,
'subgroup_name' => $request->subgroup_name,
'module_id' => $request->module_id
]);
return redirect()->back();
}
Это мой код маршрута:
Route::get('/dashboard/subgroup', 'Dashboard\SubgroupController@index');
Route::post('/dashboard/subgroup/create', 'Dashboard\SubgroupController@create');
Это мой код модели:
class Subgroup extends Model{
protected $table = 'subgroup';
public $timestamps = false;
protected $primaryKey = 'subgroup_id';
protected $fillable = ['subgroup_id', 'subgroup_name', 'subgroup_logo', 'module_id'];
public function module(){
return $this->belongsTo('App\Module' , 'module_id');
}
}
ОБНОВЛЕНИЕ: я думаю, что ошибка от вставки данных из опции выбора,
я изменяю:
$this->validate($request, [
'subgroup_logo' => 'file|image|mimes:jpeg,png,jpg|max:2048',
'subgroup_name' => 'required',
'module_id' => 'required'
]);
на:
Validator::make($request->all(), [
'subgroup_logo' => 'file|image|mimes:jpeg,png,jpg|max:2048',
'subgroup_name' => 'required',
'module_id' => 'integer|required'
]);
У меня есть выбор выбора:
<label for="category">Select Category</label>
<select class="form-control form-control-sm">
@foreach($data_category as $category)
<option id="module_id" name="module_id" value="{{$category->module_id}}">
{{$category->module_name}}</option>
@endforeach
</select>
У меня ошибка:
SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец 'module_id' не может быть пустым (SQL: вставить в subgroup
(subgroup_logo
,subgroup_name
, module_id
) значения (подгруппы / 1570166504.png, UNSIKA,?))