Php Laravel API更新/编辑功能 公共功能编辑(请求$Request,$id) { $bridge=bridge::其中('bridge_id',$id); $bridge->bridge\u id=$request->bridge\u id; $bridge->bridge\u name=$request->bridge\u name; $bridge->bridge\u description=$request->bridge\u description; $bridge->bridge\u region=$request->bridge\u region; $bridge->latitude=$request->latitude; $bridge->longitude=$request->longitude; $bridge->save(); }
我很困惑,因为如果这个Php Laravel API更新/编辑功能 公共功能编辑(请求$Request,$id) { $bridge=bridge::其中('bridge_id',$id); $bridge->bridge\u id=$request->bridge\u id; $bridge->bridge\u name=$request->bridge\u name; $bridge->bridge\u description=$request->bridge\u description; $bridge->bridge\u region=$request->bridge\u region; $bridge->latitude=$request->latitude; $bridge->longitude=$request->longitude; $bridge->save(); },php,laravel,function,api,edit,Php,Laravel,Function,Api,Edit,我很困惑,因为如果这个$id。我没有增量('id')列,因为我在表中将它更改为string('bridge\u id')。我无法进行更新/编辑 这是错误消息: BadMethodCallException:在第50行的文件C:\xampp\htdocs\PhilSIMS\vendor\laravel\framework\src\light\Support\Traits\ForwardsCalls.php中调用未定义的方法illumb\Database\elount\Builder::save()
$id
。我没有增量('id')
列,因为我在表中将它更改为string('bridge\u id')
。我无法进行更新/编辑
这是错误消息:
BadMethodCallException:在第50行的文件C:\xampp\htdocs\PhilSIMS\vendor\laravel\framework\src\light\Support\Traits\ForwardsCalls.php中调用未定义的方法illumb\Database\elount\Builder::save()
在查询中添加
first
:$bridge=bridge::where('bridge_id',$id)->first()代码>第一个错误非常清楚:
BadMethodCallException:调用未定义的方法Illumb\Database\Eloquent\Builder::save()
这是因为您在查询生成器中调用的是->save()
方法,而不是实际的模型(Bridge
)实例。要解决此问题,首先使用->first()
方法检索要更新的元素
$bridge=bridge::where('bridge_id',$id)->first();
//而不是:$bridge=bridge::where('bridge_id',$id);
或者更好,因为你需要找到一个元素。。为什么不使用那种方法呢
$bridge=bridge::find($id);
检查有关此主题的文档:
然后,下一个错误:
未找到列:1054未知列id
似乎是因为Laravel不知道您的原始密钥是bridge\u id
而不是id
。默认情况下,如果未指定自定义primmary密钥,Laravel将查找名为id
的primmary密钥
要解决此问题,请转到您的桥接器
模型并添加以下内容:
//Bridge.php
受保护的$primaryKey='bridge_id';
有关的更多信息,请参阅查询中的。添加first
:$bridge=bridge::where('bridge\u id',$id)->first()代码>它现在有一个不同的错误:未找到列:1054未知列';id';它现在有一个不同的错误:未找到列:1054未知列';id'能否添加路由
和查看
功能?路由::get('bridges','BridgeController@index'); 路由::post('addbr','BridgeController@store'); 路由::get('bridge/{id}','BridgeController@show'); 路由::删除('bridge/{id}','BridgeController@destroy'); 路由::post('editbr/{id}','BridgeController@edit');公共函数show($id){$bridge=bridge::where('bridge_id',$id)->first();返回响应::json($bridge);}非常感谢!这帮我解决了我的问题!:D@jediArvin很乐意帮忙。你现在可以接受答案了。