如何将Vue.js变量传递给Laravel刀片路由帮助器

如何将Vue.js变量传递给Laravel刀片路由帮助器,laravel,vue.js,laravel-blade,Laravel,Vue.js,Laravel Blade,例如,在我的模板中,我有一个指向其他类似帖子的链接 <a href="{{ route('post', ['post' => @{{ post.id }}]) }}">My post</a> 我希望能够使用route helper中的post对象来使用id 这个用例有语法吗 或者还有其他方法吗?事实上,我在解决此类案件时遇到了类似的问题。您的问题与Vue完全相关,但下面的方法也可用于您的案例。无论如何,你不能同时执行JS和PHP,因为它们在不同的方面工作。但由

例如,在我的模板中,我有一个指向其他类似帖子的链接

<a href="{{ route('post', ['post' => @{{ post.id }}]) }}">My post</a>

我希望能够使用route helper中的post对象来使用id

这个用例有语法吗


或者还有其他方法吗?

事实上,我在解决此类案件时遇到了类似的问题。您的问题与Vue完全相关,但下面的方法也可用于您的案例。无论如何,你不能同时执行JS和PHP,因为它们在不同的方面工作。但由于我也喜欢所有带有别名的路由,我认为这种方法。。你可以模仿这样的东西:

Route::get('/', 'PostController@all')->name('all'); // all posts page
Route::get('post', 'PostController@all')->name('all_page'); // THIS IS THE THING (one additional route), WHICH WILL TAKE RESPONSIBILITY ON CASE, WHEN post_id WILL BE EMPTY
Route::get('post/{post_id}', 'PostController@post')->name('post');
{{ route('post.all') }}
{{ route('post', ['post' => $post_id]) }}
{{ route('post') }}/@{{ post.id }}
let someUrl = "{{ route('post') }}/" + postObj.id;
<a href="{{ route('post') }}/@{{ post.id }}">My post @{{ post.id }}</a>
此方法将允许您正常使用第一和第三条路线,并在应用程序的不同位置混合使用,如下所示:

Route::get('/', 'PostController@all')->name('all'); // all posts page
Route::get('post', 'PostController@all')->name('all_page'); // THIS IS THE THING (one additional route), WHICH WILL TAKE RESPONSIBILITY ON CASE, WHEN post_id WILL BE EMPTY
Route::get('post/{post_id}', 'PostController@post')->name('post');
{{ route('post.all') }}
{{ route('post', ['post' => $post_id]) }}
{{ route('post') }}/@{{ post.id }}
let someUrl = "{{ route('post') }}/" + postObj.id;
<a href="{{ route('post') }}/@{{ post.id }}">My post @{{ post.id }}</a>
在脚本中,您可以实现如下方法:

Route::get('/', 'PostController@all')->name('all'); // all posts page
Route::get('post', 'PostController@all')->name('all_page'); // THIS IS THE THING (one additional route), WHICH WILL TAKE RESPONSIBILITY ON CASE, WHEN post_id WILL BE EMPTY
Route::get('post/{post_id}', 'PostController@post')->name('post');
{{ route('post.all') }}
{{ route('post', ['post' => $post_id]) }}
{{ route('post') }}/@{{ post.id }}
let someUrl = "{{ route('post') }}/" + postObj.id;
<a href="{{ route('post') }}/@{{ post.id }}">My post @{{ post.id }}</a>
在视图中,可以实现如下方法:

Route::get('/', 'PostController@all')->name('all'); // all posts page
Route::get('post', 'PostController@all')->name('all_page'); // THIS IS THE THING (one additional route), WHICH WILL TAKE RESPONSIBILITY ON CASE, WHEN post_id WILL BE EMPTY
Route::get('post/{post_id}', 'PostController@post')->name('post');
{{ route('post.all') }}
{{ route('post', ['post' => $post_id]) }}
{{ route('post') }}/@{{ post.id }}
let someUrl = "{{ route('post') }}/" + postObj.id;
<a href="{{ route('post') }}/@{{ post.id }}">My post @{{ post.id }}</a>

事实上,我在解决此类案件时遇到了类似的问题。您的问题与Vue完全相关,但下面的方法也可用于您的案例。无论如何,你不能同时执行JS和PHP,因为它们在不同的方面工作。但由于我也喜欢所有带有别名的路由,我认为这种方法。。你可以模仿这样的东西:

Route::get('/', 'PostController@all')->name('all'); // all posts page
Route::get('post', 'PostController@all')->name('all_page'); // THIS IS THE THING (one additional route), WHICH WILL TAKE RESPONSIBILITY ON CASE, WHEN post_id WILL BE EMPTY
Route::get('post/{post_id}', 'PostController@post')->name('post');
{{ route('post.all') }}
{{ route('post', ['post' => $post_id]) }}
{{ route('post') }}/@{{ post.id }}
let someUrl = "{{ route('post') }}/" + postObj.id;
<a href="{{ route('post') }}/@{{ post.id }}">My post @{{ post.id }}</a>
此方法将允许您正常使用第一和第三条路线,并在应用程序的不同位置混合使用,如下所示:

Route::get('/', 'PostController@all')->name('all'); // all posts page
Route::get('post', 'PostController@all')->name('all_page'); // THIS IS THE THING (one additional route), WHICH WILL TAKE RESPONSIBILITY ON CASE, WHEN post_id WILL BE EMPTY
Route::get('post/{post_id}', 'PostController@post')->name('post');
{{ route('post.all') }}
{{ route('post', ['post' => $post_id]) }}
{{ route('post') }}/@{{ post.id }}
let someUrl = "{{ route('post') }}/" + postObj.id;
<a href="{{ route('post') }}/@{{ post.id }}">My post @{{ post.id }}</a>
在脚本中,您可以实现如下方法:

Route::get('/', 'PostController@all')->name('all'); // all posts page
Route::get('post', 'PostController@all')->name('all_page'); // THIS IS THE THING (one additional route), WHICH WILL TAKE RESPONSIBILITY ON CASE, WHEN post_id WILL BE EMPTY
Route::get('post/{post_id}', 'PostController@post')->name('post');
{{ route('post.all') }}
{{ route('post', ['post' => $post_id]) }}
{{ route('post') }}/@{{ post.id }}
let someUrl = "{{ route('post') }}/" + postObj.id;
<a href="{{ route('post') }}/@{{ post.id }}">My post @{{ post.id }}</a>
在视图中,可以实现如下方法:

Route::get('/', 'PostController@all')->name('all'); // all posts page
Route::get('post', 'PostController@all')->name('all_page'); // THIS IS THE THING (one additional route), WHICH WILL TAKE RESPONSIBILITY ON CASE, WHEN post_id WILL BE EMPTY
Route::get('post/{post_id}', 'PostController@post')->name('post');
{{ route('post.all') }}
{{ route('post', ['post' => $post_id]) }}
{{ route('post') }}/@{{ post.id }}
let someUrl = "{{ route('post') }}/" + postObj.id;
<a href="{{ route('post') }}/@{{ post.id }}">My post @{{ post.id }}</a>


由于Vue 2不允许在HTML属性中插入字符串,因此没有语法,请编辑您的问题并添加完整视图,
post
对象从何而来?这里有一个非常丑陋的方法,您应该绝对避免,因为Vue 2不允许在HTML属性中插入字符串,请编辑您的问题并添加完整视图,
post
对象从何而来?这里有一个非常难看的方法,您应该避免假设route参数总是在末尾,但很好!这是一种方法,如果你想确保末尾的'post_id'是数字/数字,你也可以这样写(路由器级别的regex验证规则)Route::get('post/{post_id}','PostController@post')->name('post')->其中('post_id','^([0-9]+)$);但无论如何,在最新版本的laravel中,系统将被抛出到404 Not found页面谢谢,对于我的情况,这将做到这一点,因为它是在最后,但我希望有一个更聪明的方法来做到这一点,现在我们正在使用越来越多的Vue.js在我们的前端与一些刀片模板混合,聪明!假设route参数始终位于末尾,但很好!这是一种方法,如果你想确保末尾的'post_id'是数字/数字,你也可以这样写(路由器级别的regex验证规则)Route::get('post/{post_id}','PostController@post')->name('post')->其中('post_id','^([0-9]+)$);但无论如何,在最新版本的laravel中,系统将被抛出到404 Not found页面谢谢,对于我的情况,这将做到这一点,因为它是在最后,但我希望有一个更聪明的方法来做到这一点,现在我们正在使用越来越多的Vue.js在我们的前端与一些刀片模板混合,聪明!