【问题标题】:Laravel navigation bar not working after using a route with $id parameter?使用带有 $id 参数的路由后,Laravel 导航栏不起作用?
【发布时间】:2014-11-17 18:54:30
【问题描述】:

我正在使用 laravel 查看 MySQL 数据库中的用户表,以及如何有编辑列,我需要使用 $id 参数将用户重定向到另一个页面并查看用户详细信息。 这是我的路线,运行良好。

<td>
    <a href="{{ URL::to('userdetails',$user->id) }}"</a>
    Edit
</td>

但在转到查看用户详细信息的此页面后。我的导航栏网址开始表现得很奇怪。

当我查看用户列表时,我的网址是

/osama/warehouse/public/index.php/userslist

当我查看具有 id 的特定用户时,url 是

/osama/warehouse/public/index.php/userdetails/1

直到一切顺利,但在那之后,当我点击导航栏上的主页按钮或其他链接时,由于 URL 不正确而出现错误

/osama/warehouse/public/index.php/userdetails/home !!!

正确的网址应该是

/osama/warehouse/public/index.php/home 

请注意,我的导航栏没有使用刀片路由或 html url,只是纯 HTML。原因是我的 css 类无法包含在 html 链接中。

【问题讨论】:

  • 请提供您的“主页”按钮代码。您能否详细说明为什么不使用 Laravel 辅助类?
  • 这是我的导航条码之一,用刀片很难写。&lt;a &lt;?php if ($_SESSION['navbar']=="dashboard"){echo 'class="active"';}?&gt; href="home"&gt;&lt;i class="fa fa-dashboard fa-fw"&gt;&lt;/i&gt; Dashboard&lt;/a&gt;

标签: php html mysql css laravel


【解决方案1】:

URL::to() 不会在 URL 前加上 /,因此当您调用它时,您会得到“userslist”或“userdetails/1”。

如果您只是在对URL::to() 的调用中添加/,它会正常工作:

<a href="{{ URL::to('/userdetails',$user->id) }}"></a>

您需要对所有出现的URL::to() 执行此操作(例如,在您的主页链接上)。

在其他新闻中,还有一些其他问题:

  • 您的&lt;a&gt; 标签缺少关闭&gt; - 您只有id) }}"&lt;/a&gt;
  • 您的链接是空的,因为“编辑”在标签之外。你可能想要id) }}"&gt;Edit&lt;/a&gt;

【讨论】:

  • 当我这样写 url &lt;a href="/{{ URL::to('/userdetails',$user-&gt;id) }}"&gt;&lt;/a&gt; URL 变成这样 http://localhost/http://localhost/osama/warehouse/public/index.php/userdetails/6 两个本地主机?
  • 对不起,我有一个额外的 / 在那里 - 你不想在 href 的开头有一个。查看更新的答案,现在应该是正确的。我的坏
  • 谢谢乔,像你之前所说的解决方案,我必须更改导航栏 URL... 经过长时间的搜索,我找到了这个 stackoverflow.com/questions/19427657/… 它对我有帮助,无论如何我感谢你的帮助
  • 如果它有帮助,是否有机会投票,和/或正确答案是否正确? :-)
  • 对于 / 很有帮助,但对于导航栏没有帮助。
【解决方案2】:

你应该真正使用 Laravel 提供的辅助类。
这种问题是可以避免的。

使用 Laravel 的示例:

<a href="{{ URL::to('home') }}">Dashboard</a>
<a href="{{ url('home') }}">Dashboard</a>

如果您坚持不使用它们,您可能必须通过在开头添加一个斜杠来修改您的链接以相对于您的根目录:

<a href="/home">Dashboard</a>

您应该更改所有需要与您的根目录相关的 URL。

【讨论】:

  • 感谢您的帮助我刚刚在这里找到了解决方案stackoverflow.com/questions/19427657/… 对我有用的代码是&lt;a href="{{ url('home') }}" &gt;&lt;span&gt;&lt;i class="fa fa-dashboard fa-fw"&gt;&lt;/i&gt;&lt;/span&gt; Dashboard &lt;/a&gt;
【解决方案3】:

谢谢大家,解决方案是更改导航栏链接的{{ url('home') }} 这个链接在任何地方都可以使用 laravel Blade

【讨论】:

  • 您应该编辑您的问题以包含此信息,而不是将其作为答案发布。你应该接受一个答案。很高兴它解决了:)
  • 哦,抱歉我没看到 :)
猜你喜欢
  • 1970-01-01
  • 2015-08-13
  • 2016-05-23
  • 1970-01-01
  • 2016-04-21
  • 2019-09-19
  • 1970-01-01
  • 2016-10-06
  • 1970-01-01
相关资源
最近更新 更多