#laravel #vue.js #laravel-8 #vuejs3 #inertiajs
Вопрос:
Я хочу отправлять данные с page A
page B
контроллеров без использования, только в маршрутах laravel. ( Laravel / VueJS3 / InertiaJS )
На моей первой странице у меня есть этот метод:
// first.vue
tappedCourse(course: Course): void {
const data: secondParams = {
courseName: course.name,
};
Inertia.get("/second", data as any);
},
И в моем маршруте:
// web.php
Route::inertia('/second', 'Course/Second');
Наконец-то моя вторая страница.:
// second.vue
export default defineComponent({
props: {
courseName: {
type: String,
required: true,
default: "",
},
},
Проблема в том, что реквизит второй страницы не получает значение, но если я вставлю его вручную:
// web.php
Route::inertia('/second', 'Course/Second', [
"couseName" => "Inertia Laravel"
]);
Все работает нормально.
У вас есть какой-нибудь способ, как я могу получить «параметр запроса» в своем маршруте? лайк $courseName
и отправьте мне second.vue
код лайка выше.
Примечание: inertia.get
Это работает, потому что я получаю в URL имя параметра: значение.
http://localhost:8000/second?name="Inertia Laravel"
Примечание 2: Я бы предпочел, чтобы это был ПОСТ, но я не нашел в документации, как это сделать с помощью laravel route ( Маршрут::инерция ).
Ответ №1:
Route::inertia
только обрабатывает GET
и HEAD
запрашивает. Попробуйте это:
Route::post('/second', function ($courseName) {
return Inertia::render('Course/Second', compact('courseName'));
});