2017-04-24 37 views
2

Laravel Spark在其设置区域有许多表单。这里增加了一个团队。Laravel Spark表单如何提交?

enter image description here

如果我看这种形式的源代码,我看到了下面。

的HTML源代码这种形式看起来像下面

<form role="form" class="form-horizontal"> 
    <div class="form-group"> 
     <label class="col-md-4 control-label"> 
      Team Name 
     </label> 
     <div class="col-md-6"> 
      <input type="text" id="create-team-name" name="name" class="form-control"> 
<!----> 
       <span class="help-block" style="display: none;"> 
       </span> 
      </div> 
     </div> 
    <div class="form-group"> 
     <div class="col-md-offset-4 col-md-6"> 
      <button type="submit" class="btn btn-primary"> 
       Create 
      </button> 
     </div> 
    </div> 
</form> 

具体,形式本身没有actiontype参数

<form role="form" class="form-horizontal"> 

我的假设是有一些JavaScript运行处理这一切(一个Vue JS组件),但还不清楚

  1. 所在球队创造JavaScript源的生活,和/或其中的Spark创建组件
  2. 我如何如何原路返回一个特定的形式,以它的JavaScript

有经验的程序员在这里 - 只是新的火花,并希望这是对于有经验的Spark开发者来说简单/明显。

回答

3

在火花每个<form>通常通过包含其定义一个Vue.js组件处理,虽然它们不具有actionmethod属性,它们有特殊的Vue指令,如@submit(或@click如果它是一个<button type="submit">)。你在开发工具中没有在HTML中看到它们的原因是因为这些指令是在渲染之前编译的。

因此,您所指的表单被包裹到<spark-create-team>标记中。您可以在/resources/assets/js/spark-components/settings/teams/create-team.js中找到初始化此组件的代码;您还会注意到它只需要Spark的/vendor目录中的组件定义。换句话说,组件和表单定义存储在Spark供应商文件/vendor/laravel/spark/resources/assets/js/settings/teams/create-form.js中。你能看到settings/teams/create-form.js部分是相同的吗?这应该可以帮助您找到任何组件或表单的底层JS代码 - 只需搜索Spark的JS资产,并且最终它的文件夹结构将成为您的第二天性。

至于SparkForm类,它是一个helper class designed for working with form errors。它的定义在vendor/laravel/spark/resources/assets/js/forms/form.js文件中,但我认为你不需要对它做任何修改;只需使用Axios按照Taylor的示例进行操作即可,并且您不应对提交或验证有任何问题。虽然对于后面的点验证,我建议使用external package,而不是默认进行服务器端验证,但这里有点偏离主题。

希望这会有所帮助。

+0

完美!只是我在找什么 –

+0

Re:只要按照泰勒的例子用Axios的形式 - 这些例子是什么? –

+0

@AlanStorm几乎所有包含'SparkForm'的供应商文件中的组件示例,以查看如何提交表单。或者你可以简单地参考文档(答案中的链接)。 – Alex