У меня есть две модели:
Модель сервера с колонками ip
, port
, players_online
, votes
.
И у меня есть модель статистики с колонками: server_id
, online
, votes
.
В модели статистики у меня есть:
protected $fillable = ['server_id', 'votes', 'online'];
public function server() {
return $this->belongsTo('App\Models\Server');
}
У меня есть код:
$servers = Server::all();
foreach($servers as $server) {
$statss = getMcServer($server->ip, $server->port);
$server->players_online = $statss['online'] ? $statss['online'] : 0;
$stats = new Stats();
$stats->server()->associate($server);
$stats->save();
$server->save();
}
Когда я использую Associate, я получаю сообщение об ошибке:
SQLSTATE[HY000]: General error: 1364 Field 'online' doesn't have a default value (SQL: insert into `stats` (`server_id`, `updated_at`, `created_at`) values (24, 2018-05-15 12:12:21, 2018-05-15 12:12:21))