【发布时间】:2019-07-22 12:26:26
【问题描述】:
我正在学习 Laravel。据我所知,当前的稳定版本是 5.8。我正在关注教程并且非常喜欢该框架,但是当这些教程到达它们介绍如何合并表单的地步时会有点麻烦。所有这些教程都使用 LaravelCollective 表单,从 5.8 开始不再有效,而且它是一个废弃的项目,所以我不想使用它。
但这让我对在 Laravel 中使用表单的最佳实践感到困惑。我在创建表单方面做了一些尝试,但是……如果有意义的话,其中大部分只是 HTML,几乎没有任何 Laravel “在里面”。这里唯一的 Laravel 位是form action,它指向TodosController 中的store 函数。请参见下文,获取名为 create.blade.php 的文件。
@extends('layouts.app')
@section('content')
<h1>Create Todo</h1>
<form action="{{action('TodosController@store')}}" method="post">
@csrf
<div class="form-group">
<label for="text">Text</label>
<input type="text" name="text" class="form-control" placeholder="Enter title"/>
</div>
<div class="form-group">
<label for="body">Body</label>
<textarea class="form-control" name="body" id="body" rows="10" placeholder="Enter details"></textarea>
</div>
<div class="form-group">
<label for="due">Due date</label>
<input type="text" name="due" class="form-control" placeholder="Enter due date"/>
</div>
<input type="submit" value="Submit" class="btn btn-primary">
</form>
@endsection
这很好用,但我只是觉得我在这里根本没有正确使用刀片。任何指针将不胜感激。
【问题讨论】:
-
您可以将表单输入提取到刀片组件等,但公平地说,这比使用像样的 IDE 做的工作要多。这对我来说看起来非常好
-
我也是这么想的。至少可以放心,我并没有以某种完全无意的方式这样做,谢谢。
-
如果我错了,请纠正我,但由于它是一个字符串,这不会起作用吗?动作="{{动作('TodosController@store')}}"。不应该没有引号吗?
标签: php laravel forms laravel-blade