Having first steps in laravel, and just hit the wall.
I Have two entities:
Schema::create('company', function (Blueprint $table) {
$table->engine = "InnoDB";
$table->increments('id');
$table->string('name')->unique();
$table->integer('addressid')->unsigned()->nullable();
});
and
Schema::create('addresses', function (Blueprint $table) {
$table->engine = "InnoDB";
$table->increments('id');
$table->string('street');
(...)
});
Schema::table('company', function($table) {
$table->foreign('addressid')
->references('id')->on('addresses')
->onDelete('cascade');
});
Models are
class Address extends Model {
public function shipyard() {
return $this->belongsTo('App\Company', 'addressid');
}
}
class Company extends Model {
public function address() {
return $this->hasOne('App\Address', 'id', 'addressid');
}
}
When I want to create these entities in DB I use one form in HTML to gather all data. Then I post request and do:
Route::post('/company', function (Request $request) {
(...validation...)
$company = new Company();
$company->name = $request->name;
$address = new Address();
$address->street = $request->street;
(...)
$company->address()->save($address);
$company->save();
return redirect('/');
});
As a result I have two entities in DB, but the "addressid" field is null. Why?