create() 函数不起作用且不输出错误 (Laravel)
create() function doesn't work and does not output an error (Laravel)
我想向数据库中插入数据,但是当我运行函数不起作用并且不输出错误时,数据没有插入到数据库中但没有显示错误?我为什么要这样做?
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');
}
}
更新:
我认为错误来自 select 选项的插入数据,
我改变了:
$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'
]);
我有 select 个选项视图:
<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]: Integrity constraint violation: 1048 Column
'module_id' cannot be null (SQL: insert into subgroup
(subgroup_logo
, subgroup_name
, module_id
) values
(subgroups/1570166504.png, UNSIKA, ?))
将名称属性设置为您的 select 输入。您在 option
标签中设置的是错误的
<select class="form-control form-control-sm" name="module_id">
@foreach($data_category as $category)
<option id="module_id" name="module_id" value="{{$category->module_id}}">
{{$category->module_name}}</option>
@endforeach
</select>
//set name and id attribute to your select input then check it.it's should
// be works properly.
<label for="category">Select Category</label>
<select class="form-control form-control-sm" name="module_id" id="module_id">
@foreach($data_category as $category)
<option value="{{$category->module_id}}">
{{$category->module_name}}</option>
@endforeach
</select>
我想向数据库中插入数据,但是当我运行函数不起作用并且不输出错误时,数据没有插入到数据库中但没有显示错误?我为什么要这样做?
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');
}
}
更新: 我认为错误来自 select 选项的插入数据,
我改变了:
$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'
]);
我有 select 个选项视图:
<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]: Integrity constraint violation: 1048 Column 'module_id' cannot be null (SQL: insert into
subgroup
(subgroup_logo
,subgroup_name
,module_id
) values (subgroups/1570166504.png, UNSIKA, ?))
将名称属性设置为您的 select 输入。您在 option
标签中设置的是错误的
<select class="form-control form-control-sm" name="module_id">
@foreach($data_category as $category)
<option id="module_id" name="module_id" value="{{$category->module_id}}">
{{$category->module_name}}</option>
@endforeach
</select>
//set name and id attribute to your select input then check it.it's should
// be works properly.
<label for="category">Select Category</label>
<select class="form-control form-control-sm" name="module_id" id="module_id">
@foreach($data_category as $category)
<option value="{{$category->module_id}}">
{{$category->module_name}}</option>
@endforeach
</select>