Estoy tratando de asignar el ID de usuario con el usuario actual pero me da este error
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))aquí está mi método
//PostController Post::create(request([ 'body' => request('body'), 'title' => request('title'), 'user_id' => auth()->id() ]));con estos rellenos
//Post Model protected $fillable = ['title', 'body', 'user_id']Sin embargo, este método hace el trabajo
//PostController auth()->user()->publish(new Post(request(['title' ,'body']))); //Post Model public function publish(Post $post) { $this->posts()->save($post); }necesita cambiar el modo estricto de la base de datos. para deshabilitar siga el paso a continuación
Abra config/database.php de datos.php
encuentre 'strict' cambie el valor de verdadero a falso e intente nuevamente
Entonces, después de revisar el código nuevamente, encontré el error. ¡Me pregunto cómo nadie se da cuenta de eso! En el código anterior escribí
Post::create(request([ // <= the error is Here!!! 'body' => request('body'), 'title' => request('title'), 'user_id' => auth()->id() ]));en realidad, no es necesario que la función de solicitud deforme el cuerpo de la función de creación.
// this is right Post::create([ 'body' => request('body'), 'title' => request('title'), 'user_id' => auth()->id() ]);Tuve un problema similar con el registro de usuario hoy y estaba recibiendo un
SQLSTATE[HY000]: General error: 1364 Field 'password' doesn't have a default value (SQL: insert into users Lo arreglé agregando una password a mi matriz $ rellenable protegida y funcionó
protected $fillable = [ 'name', 'email', 'password', ];Espero que esto ayude.