如何在 Laravel URL 参数中传递 Id

新手上路,请多包涵

如何在 Laravel URL 参数 中传递 $val->id 。我使用以下代码。它的返回错误

href="{{url('/dashboard/medicinepending/{{$val->id}}')}}"

原文由 Gokulanathan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 445
2 个回答

尝试这个:

 href="{{ URL('/dashboard/medicinepending/'.$val->id )}}"

原文由 vipul sorathiya 发布,翻译遵循 CC BY-SA 3.0 许可协议

快速回答

如前所述,在刀片模板中构建 URL 的方式可以使用 url 助手;对于您的示例,这将起作用:

 {{ url('dashboard/medicinepending/', [$val->id] }}

最佳实践

在为您的视图构建 URL 时,不建议使用 urlroute 甚至 action 。这是因为 URL 不会更改,如果更改,您应该设置 301 重定向,以使您的 SEO 分数保持有效和良好。

因此,只需执行以下操作:

 <a href="/dashboard/medicinepending/{{ $val->id }}">

但是,如果您 真的 想使用包装器,那么 url 是第二好的东西。

这些帮助程序的唯一目的是通过 artisan 发送电子邮件或命令,当被触发时,cron 仅知道配置中定义的 URL: app.url

解释

使用 laravel 构建 URL 的方式是在字符串前面加上 app.url config;找到: 在 config/app.php 里面

这主要用于 CLI,当您运行 cron 进程并从带有链接的队列中生成电子邮件时,因此可以在您的应用程序中使用它。 否则根本不要使用它

使用 url 助手很好,因为您可以通过自己的 服务提供者 更改 app.url 配置的值。当您拥有多种语言的网站和/或根据域名加载网站语言时,这非常有用;例子:

  • domain.com - 将加载美国网站
  • domain.uk - 将加载英国网站
  • domain.eu - 将加载一个通用的欧盟网站
  • domain.de - 将加载德国网站
  • domain.jp - 将加载日本网站
  • ETC

如前所述,您可以从路由构建 url;这仅在您命名路线时才有效,但并非总是如此。

 {{ route('name.route', ['id' => $val->id] }}

这将通过名称 route.name 找到路由,然后通过 app('url') 解析该端点,这恰好是 UrlGenerator - 所以这并不比 url 助手 - 做不要特意为所有路线命名 - 这是不好的做法。

提到的另一种做法也不是一个好主意是使用 action 通过提供类和操作来查找路线:

 {{ action('MyController@show', $val->id) }}

这是一个坏主意,除非 MyController 实际上是一个接口而 不是 物理类,因为您需要控制反转来注入实现 MyController 的类,否则您的应用程序将不符合 SOLID 原则

原文由 Ash 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题