Allgemeiner Fehler: 1364 Das Feld 'user_id' hat keinen Standardwert

Ich versuche, die user_id mit dem aktuellen Benutzer zuzuweisen, aber ich erhalte folgende Fehlermeldung

SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a 
default value (SQL: insert into `posts` (`updated_at`, `created_at`) 
values (2017-04-27 10:29:59, 2017-04-27 10:29:59))

Hier ist meine Methode

//PostController
Post::create(request([
        'body' => request('body'),
        'title' => request('title'),
        'user_id' => auth()->id()
    ]));

mit diesen Fillables

//Post Model
protected $fillable = ['title', 'body', 'user_id']

Diese Methode erfüllt jedoch den Zweck

//PostController
auth()->user()->publish(new Post(request(['title' ,'body']))); 

//Post Model
public function publish(Post $post)
{
    $this->posts()->save($post);
}

Haben Sie eine Idee, warum das nicht funktioniert?

Versuchen Sie

'user_id' => auth()->id oder

'user_id' => Auth::user()->id

anstelle von

'user_id' => auth()->id()
Kommentare (3)

Versuchen Sie Auth::id(), wie

Post::create([ 'body' => request('body'), 'title' => request('title'), 'user_id' => Auth::id()]);

Denken Sie auch daran, die Auth-Fassade am Anfang Ihres Controllers einzubinden, die App\Http\Controllers\Auth ist.

Kommentare (1)

use print_r(Auth);

dann sehen Sie, in welchem Format Sie die Variable user_id / id haben und verwenden Sie sie

Kommentare (1)