Timmie282
Timmie282

Reputation: 95

SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value laravel 6.9.0

I was trying to put something in my database but I got the error: SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value. This program is made in laravel 6.9.0.

This is my controller:

    public function store ()
{
    request()->validate([
        'player' => ['required'],
        'team_id' => ['required'],
        'country' => ['required'],
        'birth_day' => ['required'],
        'age' => ['required'],
        'length' => ['required'],
        'weight' => ['required'],
        'position' => ['required'],
        'player_img' => ['required'],
    ]);

    $slug = $this->slugify(request('player'));
    $user = \Auth::user();

    Players::create([
        'user_id' => $user->id,
        'player' => request('player'),
        'team_id' => request('team_id'),
        'country_player' => request('country'),
        'birth_day' => request('birth_day'),
        'age' => request('age'),
        'length' => request('length'),
        'weight' => request('weight'),
        'position' => request('position'),
        'player_img' => request('player_img'),
        'slug_player' => $slug
    ]);
    return redirect('/admin/add-player');
}

This is my form:

    <form method="POST" action="/admin/add-player/database">
    @csrf
    <input type="text" name="player" required>
    <br>
    <select class="form-control input-fields" name="team_id">
        <option value="">Kies een team</option>
        @foreach($teams as $team)
            <option value="{{ $team->id }}">{{ $team->team_name }}</option>
        @endforeach
    </select>
    <br>
    <input type="text" name="country" required>
    <br>
    <input type="text" name="birth_day"required>
    <br>
    <input type="text" name="age" required>
    <br>
    <input type="text" name="length" required>
    <br>
    <input type="text" name="weight" required>
    <br>
    <input type="text" name="position" required>
    <br>
    <input type="text" name="player_img" required>
    <br>
    <input type="submit" name="submit" class="form-control input-fields btn-primary">
</form>

This is my model:

class Players extends Model
{
    protected $guarded = [];

    protected $fillable = [
        'user_id'
    ];
}

Can somebody help me with this problem?

Upvotes: 1

Views: 626

Answers (2)

VIKAS KATARIYA
VIKAS KATARIYA

Reputation: 6005

Change your model like

class Players extends Model
{
    protected $guarded = [];

    protected $table = 'players';

    protected $fillable = [
        'user_id','player','team_id','country_player','birth_day','age','length','weight','position','player_img','slug_player'
    ];
}

Upvotes: 1

Foued MOUSSI
Foued MOUSSI

Reputation: 4813

You must add 'user_id' to protected $fillable property inside Players model

Upvotes: 2

Related Questions