如何通过$val->id在Laravel URL参数.我使用以下代码.它的返回错误
href="{{url('/dashboard/medicinepending/{{$val->id}}')}}"
Run Code Online (Sandbox Code Playgroud)
Ale*_*nin 23
试试这个:
{{ url('/dashboard/medicinepending/', [$val->id]) }}
Run Code Online (Sandbox Code Playgroud)
但是使用相对路径是个坏主意,因为如果您想要更改URL方案,则需要在视图和控制器中手动查找数十或数百个链接并手动更改它们.在这种情况下,你肯定会忘记更改其中的一些,你的应用程序的某些页面将被打破.
一个好的做法是使用链接路由:
{{ route('name.route', ['id' => $val->id]) }}
Run Code Online (Sandbox Code Playgroud)
或链接到行动:
{{ action('MyController@show', $val->id) }}
Run Code Online (Sandbox Code Playgroud)
如前所述,在刀片模板中构建URL的方法可以使用url帮助程序 ; 对于你的例子,这将工作:
{{ url('dashboard/medicinepending/', [$val->id] }}
Run Code Online (Sandbox Code Playgroud)
建议不要使用url,route甚至action建立您的观点的网址.这是因为URL不会改变,如果他们这样做,你应该有301重定向设置,以便你的SEO分数保持有效和良好.
所以简单地做一些事情:
<a href="/dashboard/medicinepending/{{ $val->id }}">
Run Code Online (Sandbox Code Playgroud)
但如果你真的想要使用包装器,那么url它是第二好的.
这些助手的唯一目的是用于电子邮件或命令artisan,当被解雇时,cron不知道URL中只有配置中定义的内容:app.url
使用laravel构建URL的方法是在字符串前面加上app.urlconfig 的值; 发现:在config/app.php里面
这主要是针对CLI,当您运行cron进程并从带有链接的队列生成电子邮件时,这可以在您的应用程序中使用.否则根本不要使用它.
使用url帮助程序很好,因为您可以app.url通过自己的服务提供程序更改配置的值.当您拥有多种语言的网站和/或根据域名加载网站语言时,这非常有用; 例:
如前所述,您可以从路线构建网址; 这仅在您为路线命名并非总是如此时才有效.
{{ route('name.route', ['id' => $val->id] }}
Run Code Online (Sandbox Code Playgroud)
这将通过名称route.name找到路由,然后解析app('url')恰好是UrlGenerator的端点 - 所以这并不比url帮助器更好- 不要忘记命名所有路由 - 这很糟糕实践.
提到的另一种做法也不是一个好主意是action通过提供类和行动来寻找路线:
{{ action('MyController@show', $val->id) }}
Run Code Online (Sandbox Code Playgroud)
这是一个坏主意,除非MyController实际上是一个接口而不是物理类,因为你需要Inversion of Control来注入实现MyController的类,否则你的应用程序将不符合SOLID原则
尝试这个:
href="{{ URL('/dashboard/medicinepending/'.$val->id )}}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38001 次 |
| 最近记录: |