Ala*_*mad 5 php mysql laravel-5
我想将扇区 ID 添加到请求中,但是当我提交数据时,上面没有存储任何内容。这是我的代码
public function store(QuestionRequest $request)
{
$data = $request->all();
Question::create($data);
$sectors = Sector::lists('id');
foreach($sectors as $sector){
CustomizeQuestion::create(array_add($request->all(), 'sector_id', $sector));
}
flash()->success('New question has been added.');
return redirect('questions');
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过这段代码,但它是相同的:
public function store(QuestionRequest $request)
{
$data = $request->all();
Question::create($data);
$sectors = Sector::lists('id');
foreach($sectors as $sector){
$data['sector_id'] = $sector;
CustomizeQuestion::create($data);
}
flash()->success('New question has been added.');
return redirect('questions');
}
Run Code Online (Sandbox Code Playgroud)
如果您只想在请求中添加一个“id”,如您所说,您可以在创建任何内容之前简单地执行此操作:
$data = $request->all();
$data['sector_id'] = whatever you want;
Question::create($data);
Run Code Online (Sandbox Code Playgroud)
或者像你展示的第二种方式。
如果此方法不起作用,请验证您是否在模型的可填充数组中指定了属性,以及您是否使用了在迁移中指定的正确属性名称。
首先检查您的CustomizeQuestion型号。sector_id应该在$fillable数组中。例子:
protected $fillable = [
'sector_id',
'more',
'and_more'
];
Run Code Online (Sandbox Code Playgroud)
如果您的表单仅返回一个id方法store,则无需使用foreach或列出您的id. 只需这样做:
$data['sector_id'] = $request['id'];
CustomizeQuestion::create($data);
Run Code Online (Sandbox Code Playgroud)