首页 > 解决方案 > 如何将变量插入到 web.root 链接的 HTML href 标记内的 Laravel Blade 模板中

问题描述

我正在尝试使用blog.blade.phpHTML 中的视图 () 使用 Laravel 创建博客文章。

我的 laravel web.php 中的代码从我的本地 mssql 服务器获取博客文章如下所示(并且有效):

Route::get('/blog/{id}', function($id){
$posts = DB::table('blog_posts')->get();
return view('blog', ['id'=>$id], ['posts'=>$posts]); });

在 laravel 视图目录 home.blade.php 我的代码使用硬编码路由: url('/blog/1') href 链接带你到完整的博客文章

<h2>Blog posts:</h2>
@foreach ($posts as $post)  
    <p>{{ $post->title }} </p> <a href="{{ url('/blog/1') }}" >&#9650; Click here to view full post</a>
@endforeach

我想做的是:

<p>{{ $post->title }} </p> <a href="{{ url('/blog/{{ $post->id }}') }}" >&#9650; Click here to view full post</a>

我如何获得$post->id路径(1、2、3 或 4)并来自保存到博客行的 sql 数据库来工作。{{ $post->id }}使用而不是硬编码 "1"时,我从我的 xampp php 服务器返回以下错误。

D:\XAMPP Server\htdocs\cool-blog
ParseError Unclosed '(' does not match '}' (查看: D:\XAMPP Server\htdocs\cool-blog\resources\views\home.blade.php) http:/ /本地主机:8000/

标签: phplaravellaravel-blade

解决方案


将第二个参数传递给url()方法

<p>{{ $post->title }} </p> <a href="{{ url('blog',$post->id) }}" >&#9650; Click here to view full post</a>

参考:https ://laravel.com/docs/8.x/helpers#method-url


推荐阅读