2017-04-24 111 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