【发布时间】:2021-05-21 12:17:40
【问题描述】:
我目前正在构建一个功能,用户可以从选择框中选择一个选项,一旦选择了一个项目,您就可以单击一个按钮,该按钮会点击我的端点,该端点会提交并存储它。
但是,如果我没有选择任何内容,然后单击按钮,它只会在同一端点上点击 404 页面。
刀片
下面包含选择框和按钮的刀片语法。
<div class="row align-items-center">
<div class="col-md">
<small class="text-success">
please select one of the teams below to store your preference.
</small>
{!! Form::open(['route' => ['team.create.link', $team->id],'method' => 'post', 'class' => 'needs-validation','novalidate', null]) !!}
{!! Form::select('teams[]', $teams, '', ['class' => 'custom-select', 'multiple'], ['required']) !!}
<button class="btn btn-primary btn-sm mt-3 float-right">
<i class="fas fa-fw fa-plus-circle mr-2"></i>
Add</button>
{!! Form::close() !!}
</div>
</div>
方法
以下是用于在数据透视表中存储新输入的方法。
public function link(string $teamId)
{
$team= Team::findOrFail($teamId);
$links = Input::get('teams');
$link = Team::findOrFail($links);
$team->links()->attach($link);
session()->flash('success', 'Link Added.');
return back();
}
帮助
如果未选择选项,我将如何修改它以便无法单击按钮并返回所需的错误?我尝试将 ['required'] 添加到 form::select 但我没有运气。
谁能把我推向正确的方向?
【问题讨论】:
-
将
validation添加到您的控制器方法中。不要依赖required的客户端验证。 -
我已经看到了 Form::bsText,你可以只添加“必需”,你不能对这个用例做同样的事情吗?
-
HTML 验证应该会阻止您的表单被提交。尝试将
type="submit"添加到您的<button>或将其更改为<input type="submit">。<select>标签生成的 HTML 是什么? -
@Lowtiercoder HTML
required将提供一些验证,但您可以在检查器中将其删除,您的required验证将被绕过。另外,如果您不在服务器上进行验证,如何阻止人们向您的端点发送垃圾邮件? -
@Unflux 好点,我在下面的答案之后添加了验证
标签: laravel eloquent laravel-blade