Laravel中的字符串插值

3

我尝试了所有的方法,但无法预测插值。在官方文档中阅读了所有点,但还没有找到优雅的解决方案。

{{ url('/posts/' . $post->id . '/comments' }}

{{ url('/posts/$post->id/comments') }}

最终这个方案可行,但我期望有更优雅的解决方案。
@php
  $url = url('/posts/' . $post->id. '/comments');
@endphp

{{ $url }}

1
尝试使用第一种选项,但在 }} 之前加上一个闭合的 ) - Jan Willem
谢谢 @AlivetoDie,愚蠢的错误导致了很大的混乱,你的答案真的帮了我很多。 - gvgvgvijayan
2个回答

4
你可以尝试以下方法:-
{{ url('/posts/' . $post->id . '/comments') }} // ) missing

或者:

{{ url("/posts/$post->id/comments") }} // double quotes

4
最优雅的方式是使用路由名称。
# routes/web.php
Route::get('/posts/{post}/comments', 'PostsController@comments')
        ->where('post', '[0-9]+')
        ->name('post-comments');

那么

# PostsController.php
use App\Post
...
public function comments(Post $post, Request $request) {
    // use $post object
}

在视图中

{{ route('post-comments', ['post' => $post]) }}

Shukshin先生,您的答案让我深思。它真的非常优雅。 - gvgvgvijayan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接