Laravel - 使用 Join 语句更新表中的所有列
Posted
技术标签:
【中文标题】Laravel - 使用 Join 语句更新表中的所有列【英文标题】:Laravel - Update all column in the table with Join Statement 【发布时间】:2019-06-01 19:18:15 【问题描述】:我现在需要更新我的字段中的所有列我有 Join 语句并且我正在获取数据但我无法更新所有列
这是我的连接表名称movies
,我需要根据我输入的值更新所有aircraft_id
这是我的控制器
$getairId = DB::table('aircrafts')
->join('movies','movies.aircraft_id','=','aircrafts.aircraft_id')
->select('movies.*')
->update('aircraft_id.*')
->where('aircrafts.aircraft_id','=', $airid)
->get();
没有更新。
预期结果
所以假设这是我的页面
当我提交时,我应该得到这个实际结果/输出
【问题讨论】:
这个问题很不清楚。请退后一步,为两个表提供清晰的示例数据,然后向我们展示更新的预期结果应该是什么。现在,我怀疑有人甚至能猜到这里。 @TimBiegeleisen 您好,先生,谢谢您的建议,请查看我的预期输出/结果我编辑了我的问题,谢谢 @TimBiegeleisen 先生,你看到了吗? 嗨,夏天,如果你只想更新飞机表,那你为什么要在电影表上加入呢? 我的意思是,先生,有什么办法吗?我认为加入将动态工作并更新所有列 【参考方案1】:我假设假设你想用 3 替换飞机 id $airid = 1
$getairId = DB::table('aircrafts')
->join('movies','movies.aircraft_id','=','aircrafts.aircraft_id')
->where('aircrafts.aircraft_id','=', $airid)
->update(array("aircrafts.aircraft_id"=>3));
在最后一个更新语句中,您可以传递要更新的变量名称,该名称来自您的前端表单。
希望此代码对您有用
【讨论】:
你好!谢谢,但最后一件事是让我们假设这是我的文本框$airid = $request->input('aircraft_id');
,我将更新更改为>update(array("series.aircraft_id"=>$airid));
,为什么它不起作用?为什么不更新? :(
在 $airid = $request->input('aircraft_id'); 之后,你在 $airid 中得到了什么?
试试 $airid = $request->aircraft_id;直接以上是关于Laravel - 使用 Join 语句更新表中的所有列的主要内容,如果未能解决你的问题,请参考以下文章