Creo una aplicación de tareas pendientes en laravel con vue. Tengo dos tablas: usuarios y todos; cada usuario tiene muchos todos como este: Modelo User.php:
class User extends Authenticatable { protected $fillable = [ 'name', 'email', 'password', ]; public function todos() { return $this->hasMany( Todos::class, 'user_id', 'user_id' ); } }Modelo Todos.php:
class Todos extends Model { // protected $fillable = ['title', 'completed', 'user_id']; public function user() { return $this->belongsTo('App\User'); }entonces definí esta ruta:
Route::post('/v1/todo', 'todosController@addTodo');este es mi addTodo de todosController:
public function addTodo(Request $request) { $uid = Auth::user()->id; //dd($uid); $todoCreated = new Todos([ 'title' => $request->input('title'), 'completed' => 0 ]); $user = User::find($uid); //dd($user); //dd($todoCreated); dd($user->todos()->create([ 'title' => $request->input('title'), 'completed' => 0, ])); } cuando envío datos de formulario, me muestra este error: Illuminate\Database\QueryException SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'user_id' cannot be null (SQL: insert into todos ( título , completado , user_id , actualizado_en , created_at ) values (darya, 0, ?, 2020-07-06 12:17:45, 2020-07-06 12:17:45)) . ¡Soy nuevo en laravel y agradezco cualquier ayuda!
Ha pasado el parámetro incorrecto en la relación.
public function todos() { return $this->hasMany( Todos::class,'user_id','id' ); } return $this->hasMany(Todos::class, 'foreign_key', 'local_key');