В моей кодовой базе у меня есть модель актива и модель технологии,
Модель актива может быть изменена,
public function assetable() {
return $this->morphToMany();
}
И технологическая модель тоже с этим связана,
public function asset() {
return $this->morphOne(Asset::class, 'assetable');
}
В моем контроллере я делаю следующее:
public function create(Request $request) {
//Do validation
\DB::beginTransaction();
try {
$technology = Technology::create([
'technology' => $request->name,
'type' => 'payment'
]);
} catch(\Exception $e) {
\DB::rollback();
throw($e);
}
try {
//update the already uploaded asset so it relates to the newly created Technology
$assets = Asset::whereIn('id', $request->uploadedFile)->update([
'assetable_id' => $technology->id,
'assetable_type' => 'App\Payment'
]);
} catch(\Exception $e) {
\DB::rollback();
throw($e);
}
\DB::commit();
return response(['technology' => $technology->load('asset')], 201);
}
Я хочу вернуть новый созданный актив Technology с отношением актива как часть результата, но он возвращается как null,
Что я делаю не так? Разве мне не нужно запрашивать базу данных?