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

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

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

PHP
阿波罗的战车 2022-07-22 19:31:11
在我的侧边栏中,我列出了 od 默认城市。当我点击每个城市时,我会从某个 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/favorites/3ID 始终为3,棘手的部分是我的收藏夹表中实际上没有任何具有该 ID 的内容。我一天前删除了那行。所以我的问题是为什么我最喜欢的城市的 URL 中只显示 ID 3?我使用的数据库是 MySQL。除此之外,当我手动将URL 中的ID 3更改为1或2或我数据库中的任何其他值时,一切正常 - 我得到了我选择的城市所需的数据。组装不起作用的链接的刀片中的代码如下所示:<ul>@foreach ($favorites as $key => $favorite)                   <li><a href="{{ route('showFavoriteWeather', $id) }}">{{ $favorite->city_name }}</a></li>  @endforeach</ul>
查看完整描述

1 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

你的href应该是这样的:

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

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


查看完整回答
反对 回复 2022-07-22
  • 1 回答
  • 0 关注
  • 229 浏览

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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