我是VueJS的新手。
我有一个使用拉拉维尔助手的链接:
<a href="{!! URL::action('TournamentController@edit', $tournament->id) !!}">{{ $tournament->id }}</a>
由于它将在 VueJS v-for 中,现在我需要引用我用 AJAX 加载的 Vue 变量。
所以,我试着这样写:
<a href="{!! URL::action('TournamentController@edit', @{{ tournament.id }} ) !!}">@{{ tournament.id }}</a>
但我得到
Parse error: syntax error, unexpected '{' (View: /home/vagrant/Code/resources/views/tournaments/index.blade.php)
知道如何混合Laravel Helper和VueJS吗?
首先,看起来你在@{{ tournament.id }}
周围缺少引号。
但是在自己玩了一下之后,由于路线使用与占位符相同的括号,目前似乎是不可能的。
解决方法是在某处创建一个简单的函数,该函数使用唯一占位符生成 url,然后对生成的 url 执行str_replace
调用。
这是我不喜欢帮助程序的东西,我已经完全停止使用它们。恕我直言,最好的方法是为此(或 Route::controller)创建一个路由并将这些 url 映射到控制器。然后使用类似以下内容:
<a href="{{url('tournament/edit')}}/@{{ tournament.id }}">@{{ tournament.id }}</a>
您的路线可能是这样的:
Route::controller('tournament','TournamentController');
以及控制器内部的功能:
function getEdit($tournament_id){
// something something
}
这样的事情会起作用