Laravel 刀片模板,URL::to 中的 foreach 变量?
Posted
技术标签:
【中文标题】Laravel 刀片模板,URL::to 中的 foreach 变量?【英文标题】:Laravel blade templates, foreach variable inside URL::to? 【发布时间】:2013-05-06 14:12:47 【问题描述】:我正在创建一个基本的帖子列表视图,需要一个指向“编辑”页面的链接。
我正在使用刀片,我有一个表格,带有一个 foreach 循环,显示每个帖子以及编辑/删除按钮。
我想要做的是使用刀片的 URL::to 链接到编辑和删除页面,以确保链接一致。
我尝试使用的代码(记住这是在 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
有没有办法解决这个问题?
【问题讨论】:
【参考方案1】:我认为这会奏效
<a href=" url('test/'.$post->id.'/view') "></a>
【讨论】:
【参考方案2】:我认为问题在于您在带有单个'
的字符串中使用了php 变量($post)。在这种情况下,它只输出变量的名称。试试这个:
<a href=" URL::to('admin/posts/edit/' . $post->id) " class="btn btn-mini btn-primary">Edit Post</a>
希望这会有所帮助。 弗拉德
【讨论】:
【参考方案3】:您也可以使用route()
helper 通过路由名称生成 url。例如路由的定义:
Route::get('/test/mypage/id', 'MyController@myAction')->name('my_route_name');
你认为的代码:
<a href=" route('my_route_name', $row['id']) "> $row['name'] </a>
【讨论】:
【参考方案4】:在 Laravel 5 中遇到了这个问题,所以即使问题很老,我也想把它弹出来。使用
解决了我的问题 URL::to('/box').'/'.$box->id
或 url('/box').'/'.$box->id
【讨论】:
【参考方案5】:另一种方式
<a href="URL::to('/')/admin/posts/edit/$post->id">Edit</a>
【讨论】:
【参考方案6】:
等于 <?php echo ;?>
如果你放单'
<?php echo '$hello' ?>
= $你好
但是如果你放双 ' (")
-> <?php "$hello" ;?>
= Hello World(只是一个例子)
你需要写 URL::to("admin/posts/edit/$post->id")
之类的东西
【讨论】:
【参考方案7】:vlad 已经对您的问题给出了正确答案,但请注意,您也可以通过 URL::action
直接链接到您的控制器操作:
<a href=" URL::action('Admin\PostsController@edit', $post->id) ">Edit</a>
【讨论】:
谢谢。这有助于解决我的问题,我认为指向操作的链接会知道与路由中的变量匹配的变量集。不是这样。我必须将它作为第二个参数传递。以上是关于Laravel 刀片模板,URL::to 中的 foreach 变量?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Laravel5 中的刀片模板传递扩展主模板中的变量?