为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 路由在 URL 中仅显示一个 ID,即使该 ID 在表中不存在

Laravel 路由在 URL 中仅显示一个 ID,即使该 ID 在表中不存在

PHP
慕森卡 2022-08-05 18:44:30
在我的侧边栏中,我列出了默认城市。当我点击每个城市时,我会从某个API获得该城市的一些数据。这部分有效。在同一侧边栏中,我还有最喜欢的城市列表,注册用户可以根据需要将其添加到该列表中,稍后他们只需单击它们即可获得自己喜欢的城市的一些数据。听起来很容易,但这部分不起作用。问题是Laravel路由系统只从我的收藏夹表中为列表中的每个最喜欢的城市获取一个ID。这是路线:Route::get('/favorites/{id}/', 'FavoriteController@show')->name('showFavoriteWeather');这是控制器:    public function show($id){            $favorite_city = Favorite::find($id);            // dd($favorite_city);            $api_key = "";              $url = "api.openweathermap.org/data/2.5/group?id=$favorite_city->city_id&units=metric&appid=$api_key";             $ch = curl_init($url);            curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);            $json_response = curl_exec($ch);            $data = json_decode($json_response, true);            // dd($data);            return view('showFavoriteWeather', compact('data'));        }喜欢的城市在侧边栏中列出很好,但每个链接的URL是相同的:localhost:8000/收藏夹/3ID始终是3,棘手的部分是我实际上没有使用该ID的收藏夹表中的任何内容。我一天前删除了那一行。所以我的问题是,为什么在我最喜欢的城市的URL中只显示ID 3?我使用的数据库是MySQL。除此之外,当我手动将URL中的ID 3更改为1或2或我在数据库中的任何其他ID 3时,一切都可以正常工作 - 我获得了我想要的我所选择的城市的数据。边栏选项卡中用于组装不起作用的链接的代码如下所示:<ul>@foreach ($favorites as $key => $favorite)                   <li><a href="{{ route('showFavoriteWeather', $id) }}">{{ $favorite->city_name }}</a></li>  @endforeach</ul>
查看完整描述

1 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

你的 href 应该是这样的:

<a href="{{ route('showFavoriteWeather', $favorite->id) }}">

你只是以你拥有它的方式传递,你需要获取foreach循环的实际迭代对象的ID。$id


查看完整回答
反对 回复 2022-08-05
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号