进入数据库不更新数据,我听不懂我的问题,错误在下面
Illuminate \ Database \ QueryException(42S22) SQLSTATE [42S22]:找不到列:1054“字段列表”中的未知列“ _method”(SQL:更新
trades
设置_method
= PATCH,_token
= AcbGEbEyNxX3e2RzRR2cb1SW6NDvkJuDqFevl0Mr,{{1} } = 1,exchange_id
= 1,market_id
= 45,symbol_id
= 0,is_action
=,tradedate
= 5000,rate
= hhhhhhhhh ,note
= 2018-07-21 13:06:13其中updated_at
。trades
= 33和user_id
。trades
不为null并且{{1 }}。user_id
为空)
这是我的控制器
trades
这是我的edit.blade.php文件
deleted_at
这是我的create.blade.php文件
public function edit($id)
{
$trade = Trade::findOrFail($id);
$exchanges = Exchange::pluck('exchange','id')->all();
$markets = Market::pluck('market','id')->all();
$symbols = Symbol::pluck('symbol','id')->all();
$reasons = Reason::pluck('reason','id')->all();
return view('member.add-single-trade.edit', compact('trade','reasons', 'exchanges', 'markets', 'symbols'));
}
public function update(Request $request, $id)
{
$input = $request->all();
$tradeID= Auth::user()->trade($id)->update($input);
$reasons=$request->input('reason');
$data = [];
foreach($reasons as $key => $value) {
$data[] = ['reason_id' => $value];
};
$data = array(
'reason_id' =>$reasons,
'trade_id' => $tradeID->id,
);
$test['trade_id']= $tradeID->id;
if($data > 0) {
foreach ($data as $datum) {
$tradeID->tradereason()->update(new TradeReason($datum));
}
}
}
答案 0 :(得分:2)
您尚未包含模型代码(可能您正在使用$guarded = [];
),但可能不是
$input = $request->all();
您应该使用:
$input = $request->except('_method');
这是因为使用_method
时会在表单中添加额外的Form::model
字段以通过HTTP动词方法,并且显然您的表中没有_method
字段
编辑
如果您有更多字段,则可以包括更多要忽略的字段,例如:
$input = $request->except('_method', '_token');
或者,您只能使用您真正想要获取的获取字段,例如:
$input = $request->only('exchange_id', 'market_id');
(当然,您应该在上面添加更多字段-这仅是示例)
答案 1 :(得分:0)
您可以使用模型的$fillable
属性来告诉ORM哪些属性(列)可以批量分配。通过update和create方法传递的任何其他字段都将被丢弃。 check at Laravel docs