我想在请求中添加扇区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');
}
我也试过这段代码,但它是一样的:
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');
}
答案 0 :(得分:2)
如果你只是想按照你的说法在你的请求中添加一个'id',你可以在创建之前简单地执行此操作:
$data = $request->all();
$data['sector_id'] = whatever you want;
Question::create($data);
或者像你展示的第二种方式一样。
如果此方法不起作用,请验证您是否在模型的可填充数组中指定了属性,以及是否使用了迁移中指定的正确属性名称。
答案 1 :(得分:2)
首先检查您的CustomizeQuestion
模型。 sector_id
应位于$fillable
数组中。示例:
protected $fillable = [
'sector_id',
'more',
'and_more'
];
如果您的表单只返回一个id
到store
方法,则无需使用foreach
或列出您的id
。只需这样做:
$data['sector_id'] = $request['id'];
CustomizeQuestion::create($data);