我有问题。我想创建一个下拉框,其名称来自我的数据库中的表,并且只存储其他表中该名称的id(该id是外键)。我会告诉你我的代码
public function create()
{
$estado = Estado::pluck('nome', 'id');
return view('Backoffice.acoes.criar_acao', compact('estado'));
}
AcaoController @创建:
$data = Acao::create([
'estado_id' => $data[estado_id],
]);
return redirect()->back();
}
AcaoController @商店:
Fib
这种方式商店不起作用,我认为这段代码不适用于acao和estado之间的关系。
任何人都可以帮助我 谢谢
答案 0 :(得分:0)
如果我得到它,你想在 Estado 模型中创建一个 Acao 模型。
首先,您使用的是尚未初始化的 $data[estado_id]
。
一个简单的解决方案是首先创建Acao对象,然后访问属性estado并创建一个新的Instance。然后使用eloquent:
$acao = new \App\Acao([/*your data*/]); // even a create is good
$acao->save(); // instead of save
$acao->estado()->create(
[/*estado data*/]
);
$acao->save();
我不确定您要尝试将 $data[estado_id]
传递给create方法。
查看
<select name="estado">
@foreach($estdo in $estados)
<option value="{{ $estado->id }}">{{$estado->nome}}</option>
@endforeach
</select>
控制器
Acao::create([
'estado_id' => $request->get('estado'),
]);
或者
$acao = new Acao;
$acao->estado_id = $request->get('estado');
$acao->save();