Laravel 和 Vue JS 路由

Posted

技术标签:

【中文标题】Laravel 和 Vue JS 路由【英文标题】:Laravel and Vue JS Route 【发布时间】:2017-12-16 11:38:24 【问题描述】:

如何在 Vue 组件中使用我的 laravel web.php 的 route('test.create')? 这是web.php:

Route::resource('/test', 'TestController');

但我想通过 route('test.create') 访问 url 并将其添加到我的 Vue 组件中的 <form> 中。 这是 Vue 组件:

<template>
  <div id="app">
    <form action="route('test.create')" method="POST">
      <div class="form-group">
        <label for="name">Name</label>
        <input type="text" id="name" class="form-control"> 
      </div>
      <div class="form-group">
        <label for="location">Location</label>
        <input type="text" id="location" class="form-control"> 
      </div>
      <div class="form-group">
        <label for="age">Age</label>
        <input type="number" id="age" class="form-control"> 
      </div>
      <div class="form-group">
        <input type="submit" class="btn btn-default"> 
      </div>
    </form>
  </div>
</template>

<script>
export default 
  name: 'create',
  data: function()
    return 
        msg: '',
    
  ,

</script>

【问题讨论】:

查看这个答案***.com/a/39714705/5350773 问题有点不清楚,您现在遇到的具体问题是什么? 【参考方案1】:

route('test.create') 是一个 laravel 函数,它不适用于 vue 组件/javascript。您需要通过 DOM(在您的模板/刀片 php 文件中)将返回的值传递给 vue 组件。

例如:

在你的 view.blade.php 中:

<your-component create-url="route('test.create')"></your-component>

在你的 Component.vue 中:

props: ['createUrl']

那么你可以使用

<form action="createUrl" method="POST">

【讨论】:

【参考方案2】:

你不能访问route()它是一个Laravel helper function它只能在内部工作

/资源/视图/

【讨论】:

以上是关于Laravel 和 Vue JS 路由的主要内容,如果未能解决你的问题,请参考以下文章

将 Laravel Blade 模板与 Vue JS 和事件监听器一起使用

Vue.js:在 laravel 中实现 MPA(多页面应用程序)的最佳方式

Vue.js 组件中的 Laravel 路由链接?

Laravel + Vue.js (axios) 使用网络路由 - 未经身份验证

Laravel + Vue JS 路由显示找不到页面

将 Vue js 前端和 laravel 后端(api 路由)托管到共享服务器?