Как передать переменную Vue.js помощнику по маршруту Laravel Blade - PullRequest
0 голосов
/ 08 октября 2019

Например, у меня есть ссылка на другой пост, подобный этому, в моем шаблоне

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

Я хочу иметь возможность использовать объект поста в помощнике по маршруту, чтобы использовать идентификатор.

Есть ли синтаксис для этого варианта использования?

Или есть другой способ сделать это?

1 Ответ

2 голосов
/ 08 октября 2019

На самом деле у меня были похожие проблемы для решения подобных случаев. Ваш вопрос относится к 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');

Этот метод позволит вам использовать 1-й и 3-й маршруты как обычно,и так же смешано в разных местах в вашем приложении, как это:

{{ 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>
...