Имеется две модели.
User (получена в результате
make:auth) и
Ad. Модель
Ad наследует
Model, а модель
User наследует
Authenticatable.
В результате чего при попытке назначить отношения между моделями, я получаю ошибку:
General error: 1364 Field 'user_id' doesn't have a default value
Модель Ad имеет функцию:
public function user()
{
return $this->belongsTo('App\User');
}
Модель User имеет функцию:
public function ads()
{
return $this->hasMany('App\Ad');
}
В чем проблема и как решить?
P.S.
Полная модель Users:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
public function ads()
{
return $this->hasMany('App\Ad');
}
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'category_id', 'user_id'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
}
Ad:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Ad extends Model
{
public function category()
{
return $this->belongsTo('App\Category');
}
public function user()
{
return $this->belongsTo('App\User');
}
public function adimages()
{
return $this->hasMany('App\AdImage');
}
}
Таблица
ads содержит поле
user_id.