有没有办法在Laravel模板中嵌套{{}}表达式?

时间:2018-06-19 22:53:54

标签: php laravel-5 laravel-blade

我有Artisan命令生成的资源路由,

Route::resource('posts','PostsController');

此路由的URI是posts / {post} / edit,中间需要一个动态值。但是因为我使用url()方法链接所有路线,所以我不得不将模板表达式嵌套为:

<a href="{{url('/posts/{{$show->id}}/edit')}}" class="btn btn-sm">Edit</a>

这给我一个错误:NotFoundHttpException,因为它无法获得{{$ show-> id}}部分。我该如何解决?

3 个答案:

答案 0 :(得分:0)

PostsController中,创建一个要显示在模板中的新变量。您应该能够在控制器内使用url()函数。 (请参见here)像平常一样将此值传递给模板。

以防万一:documentation on how to pass values to a template

答案 1 :(得分:0)

使用{% if instance.image %} <img src='{{ instance.image.url }}' class='img-responsive' style='max-width:300px;' /> {% endif %} <h3>{{ instance.brand}} {{ model }}</h3> {% if instance.user.get_full_name %} <p>Author: {{ instance.user.get_full_name }}</p> {% endif %} <h5>Originally Supplied With: </h5> {{ instance.orig }} {% if instance.comp %} <h5>Compatible With: </h5>{{ instance.comp }} {% endif %} 而不使用<a href="<?php echo url('/posts/'.$show->id.'/edit')?>" class="btn btn-sm">Edit</a>表示法。

答案 2 :(得分:0)

您需要双引号并删除一个括号

您是否正在寻找类似的东西?

@foreach($posts as $post)
<a href="{{url("/posts/{$post->id}/edit")}}" class="btn btn-sm">Edit</a>
@endforeach