Laravel select 字段验证

Laravel select field validation

我目前正在构建一个功能,用户可以从 select 框中 select 一个选项,一旦一个项目被 selected 你可以点击一个按钮点击我的端点提交并存储它。

但是,如果我什么都不 select 单击按钮,它只会在同一端点上点击 404 页面。

Blade

下面包含 select 框和按钮的 blade 语法。

<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>

方法

以下是用于将新输入存储在数据透视表中的方法 table。

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();
}

帮助

我该如何修改它才能使按钮无法被点击,并且如果某个选项未 selected,则 returns 出现必需的错误?我试过将 ['required'] 添加到 form::select 但我没有成功。

任何人都可以把我推向正确的方向吗?

您可以使用 $this->validate

验证您的请求
use Illuminate\Http\Request;

public function link(Request $reqeust, string $teamId)
{
    $request->validate([
        'teams' => 'required',
    ]);

    $team = Team::findOrFail($teamId);

    $links = Input::get('teams');

    $link = Team::findOrFail($links);

    $team->links()->attach($link);

    session()->flash('success', 'Link Added.');

    return back();
}

查看 Laravel Validation

的官方文档