Laravel刀片模板,URL :: to中的foreach变量?

时间:2013-05-12 11:31:40

标签: templates laravel laravel-4 blade

我正在创建帖子的基本列表视图,并需要指向“编辑”页面的链接。

我正在使用刀片,而我所拥有的是一个带有foreach循环的表格,显示每个帖子以及编辑/删除按钮。

我想要做的是使用刀片的URL ::来获取编辑和删除页面的链接,以确保链接一致。

我尝试使用的代码(请记住这是在foreach循环中,因此$ post-> id var)是这样的:

<a href="{{ URL::to('admin/posts/edit/$post->id') }}" class="btn btn-mini btn-primary">Edit Post</a>

然而,这不起作用。我也试过了

<a href="{{ URL::to('admin/posts/edit/<?php echo $post->id; ?>') }}" class="btn btn-mini btn-primary">Edit Post</a>

也不起作用。

我没有得到任何错误,链接字面上最终是:

http://domain.dev/admin/posts/$post->id

有什么方法可以解决这个问题吗?

7 个答案:

答案 0 :(得分:22)

我认为问题是你在一个'的字符串中使用php变量($ post)。在这种情况下,它只输出变量的名称。试试这个:

<a href="{{ URL::to('admin/posts/edit/' . $post->id) }}" class="btn btn-mini btn-primary">Edit Post</a>

希望这会有所帮助。 维拉德

答案 1 :(得分:13)

vlad已经为您的问题提供了正确的答案,但请注意,您也可以通过URL::action直接链接到您的控制器操作:

<a href="{{ URL::action('Admin\PostsController@edit', $post->id) }}">Edit</a>

答案 2 :(得分:1)

{{ }}等于<?php echo ;?>

如果你放一个'

<?php echo '$hello' ?> = $ hello

但是如果你把双' (") - &gt; <?php "$hello" ;?> = Hello World(只是一个例子)

您需要编写类似{{ URL::to("admin/posts/edit/$post->id") }}

的内容

答案 3 :(得分:0)

另一种方式

<a href="{{URL::to('/')}}/admin/posts/edit/{{$post->id}}">Edit</a>

答案 4 :(得分:0)

在Laravel 5中遇到过这个问题,所以即使问题很老,我也会把它弹出来。使用

解决了我的问题

{{ URL::to('/box').'/'.$box->id }}


{{ url('/box').'/'.$box->id }}

答案 5 :(得分:0)

您也可以使用route()助手按路线名称生成网址。例如,路线的定义:

Route::get('/test/mypage/{id}', 'MyController@myAction')->name('my_route_name');

您视图中的代码:

<a href="{{ route('my_route_name', $row['id']) }}">{{ $row['name'] }}</a>

答案 6 :(得分:0)

我认为这会起作用

<a href="{{ url('test/'.$post->id.'/view') }}"></a>