Php 有没有办法在Laravel模板中嵌套{{}表达式?
我有一个由Artisan命令生成的资源路由,如下所示Php 有没有办法在Laravel模板中嵌套{{}表达式?,php,laravel-5,laravel-blade,Php,Laravel 5,Laravel Blade,我有一个由Artisan命令生成的资源路由,如下所示 Route::resource('posts','PostsController'); 此路径的URI为POST/{POST}/EDIT,需要中间的动态值。但由于我使用url()方法链接所有路由,我被迫将模板表达式嵌套为: <a href="{{url('/posts/{{$show->id}}/edit')}}" class="btn btn-sm">Edit</a> 这给了我一个错误:NotFound
Route::resource('posts','PostsController');
此路径的URI为POST/{POST}/EDIT,需要中间的动态值。但由于我使用url()方法链接所有路由,我被迫将模板表达式嵌套为:
<a href="{{url('/posts/{{$show->id}}/edit')}}" class="btn btn-sm">Edit</a>
这给了我一个错误:NotFoundHttpException,因为它无法获取{{$show->id}}部分。如何解决此问题?在
PostsController
中,创建一个新变量,以显示在模板中。您应该能够在控制器中使用url()
函数。(请参见)像通常一样将此值传递给模板
以防万一:使用
而不使用{}
符号。您需要双引号并删除一个括号
你在找这样的东西吗
@foreach($posts as $post)
<a href="{{url("/posts/{$post->id}/edit")}}" class="btn btn-sm">Edit</a>
@endforeach
@foreach($posts as$post)
@endforeach
我的路线uri如何?它期望我通过/posts/??/edit乍一看,你不需要里面的双{{}。只做一个{}。另一个问题是包含字符串PARAM的单引号,我会考虑使用双引号。下面有一个问题表明了这一点。