我在一个带有惯性链接组件的页面上有一个简单的文本区域标记,该组件的样式是一个按钮,用于将文本区域的内容添加到数据库中.
<script setup>
import { ref } from "vue";
let noteToAdd = ref('');
</script>
...
<template>
<textarea v-model="noteToAdd"></textarea>
<Link
:href = "route('notes.store')"
method = "post"
as = "button"
:data = "{'note': noteToAdd, 'user_id': user.id }"
>
Add Note
</Link>
...
</template>
NoteController存储方法只是验证文本区域内容,然后在其上运行一个Create方法.
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Request;
use Inertia\Inertia;
class NoteController extends Controller;
...
public function store()
{
$attributes = Request::validate([
'note' => ['required', 'min:3'],
'user_id' => 'required',
]);
Note::create($attributes);
}
所有工作都按计划进行.笔记内容已正确添加到数据库中.然而,如果不使用表单,我不知道如何在成功添加到数据库时重置或清除文本区.
这看起来似乎很简单,我可能只是想多了,但我看到的所有文档都需要一个表单,然后清除表单的内容(或单个字段).设置v-Model属性=‘’,似乎也不起作用?
这可以在没有表格的情况下完成吗?如果是这样的话,如何以及最佳实践是在控制器、链接组件或其他地方处理该问题吗?
我可以使用表单来实现这一点,但是,我希望在不使用表单的情况下实现这一点,以可能简化代码.