如何在Laravel URL参数中传递Id

时间:2016-03-18 04:37:21

标签: php laravel

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

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

5 个答案:

答案 0 :(得分:18)

试试这个:

URL

但是使用相对路径是一个坏主意,因为如果您想要更改URL方案,则需要在视图和控制器中手动查找数十或数百个链接并手动更改它们。在这种情况下,您肯定会忘记更改其中一些内容,并且应用程序的某些页面将被破坏。

一个好的做法是使用链接路由:

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

或指向行动的链接:

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

答案 1 :(得分:6)

快速回答

如前所述,在刀片模板中构建网址的方式可以使用url helper;对于你的例子,这将起作用:

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

最佳实践

在为您的观看点构建网址时,建议不要使用urlroute甚至action。这是因为URL不会改变,如果他们这样做,你应该有301重定向设置,以使你的SEO分数保持有效和良好。

所以简单地做一些事情:

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

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

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

解释

使用laravel构建URL的方法是在字符串前加上app.url config的值;发现:inside config/app.php

这主要针对CLI,当您运行cron进程并从带有链接的队列生成电子邮件时,这可以在您的应用程序中使用。 否则请勿使用

使用url帮助程序很好,因为您可以通过自己的Service Provider更改app.url配置的值。当您拥有多种语言的网站和/或根据域名加载网站语言时,这非常有用;例如:

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

如前所述,您可以从路线构建网址;这仅在您为路线命名时才有效。

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

这会找到名称为 route.name 的路线,然后通过恰好是UrlGeneratorapp('url')解析该终点 - 所以这不是更好比url帮助者 - 不要忘记命名所有路线 - 这是不好的做法。

提到的另一个做法也不是一个好主意,是通过提供类和行动来查找路线来使用action

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

这是一个坏主意,除非MyController实际上是一个接口 NOT 一个物理类,因为你需要Inversion of Control来注入实现 MyController 否则您的申请将不符合S.O.L.I.D Principle

答案 2 :(得分:2)

试试这个:

 @Override
 protected void onPause() {
     super.onPause();
     if (mIsConnected) {
         mTango.disconnect();
         tangoCameraPreview.disconnectFromTangoCamera();
         mIsConnected = false;
     }
  }

答案 3 :(得分:2)

顺便说一句,我也同意@Alexey Mezenin,你应该更喜欢使用route()辅助函数而不是使用url(),route()会让你更灵活地传递一些params和主URL。

无论如何,你不应该在另外几个方括号中使用刀片代码语法({{}}),还有一件事,尽量避免在url的第一部分中开始和结束,如下所示。

您应该使用以下代码更新您的代码,这有望工作。

href =&#34; {{url(&#39; dashboard / medicinepending&#39;。$ val-&gt; id)}}&#34;                    OR

href =&#34; {{url(&#39; dashboard / medicinepending&#39;,$ val-&gt; id)}}&#34;

答案 4 :(得分:1)

这对我有用:

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