Php 如何设置HTML数字输入类型的默认值?

Php 如何设置HTML数字输入类型的默认值?,php,html,laravel,Php,Html,Laravel,我正在使用Laravel,目前正在尝试将表单数据传递到数据库,但我遇到一个错误,即我尝试输入的字段可能不为空: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'assists' cannot be null 表单的设置方式通常会出现某些输入为空的情况 <tr> <input type="hidden" name="player_id" value="{{ $player->id }}"

我正在使用Laravel,目前正在尝试将表单数据传递到数据库,但我遇到一个错误,即我尝试输入的字段可能不为空:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'assists' cannot be null 
表单的设置方式通常会出现某些输入为空的情况

<tr>
    <input type="hidden" name="player_id" value="{{ $player->id }}">
    <input type="hidden" name="game_id" value="{{ $game->id }}">
    <td>{{ $player->fn }} {{ $player->ln }}</td>
    <td><input type="number" name="goals" placeholder="goals"></td>
    <td><input type="number" name="assists" placeholder="assists"></td>
    <td><input type="number" name="tackles" placeholder="tackles"></td>
    <td><input type="number" name="saves" placeholder="saves"></td>
    <td><input type="number" name="yellows" placeholder="yellows"></td>
    <td><input type="checkbox" name="red" placeholder="red"></td>
</tr>

{{$player->fn}{{{$player->ln}

这几乎是预期的行为。我认为解决这个问题的最简单方法是将数字输入类型默认设置为0,因此除非另有指定,否则它将被传递到数据库。我怎样才能做到这一点

有许多不同的方法可以实现这一点

在模型中显式指定默认列值

class Game extends Model {
   protected $attributes = [
       'assists' => '0'
   ];
}
正如所建议的,最简单和最有效的方法是使用
输入
元素的默认属性之一

<input type="number" name="goals" placeholder="goals" value="0">


I在文本字段上总是有一个
value=”“
,为什么不在数字字段上有一个
value=“0”
?最好是验证处理php脚本中的传入值(无论如何,您都必须这样做)。如果您知道在分发html表单时要使用哪些默认值,那么您也可以在处理填写的表单时应用它们。@mplungjan谢谢。我不知道它会这么简单,我以为它会覆盖任何实际传递的值。不,它不会。在PHP中,您将有
value=“{{{$player->goals}}}”
并在没有目标时返回0注意,这并不能真正防止OP草图中的问题:如果用户主动从表单中删除值,则仍然没有值被传输,并且出现错误。然后第二种方法就足够了,但在这种情况下:为什么要实施第一个选项#