Вернуть модель с Laravel, когда она была создана

Мне нужно отправить новую модель, сохраненную как json, на фронт, но я не вижу столбца Organizationid в ответ

Это моя модель

class Organization extends Model
{
protected $table = "core.organizations";
protected $fillable = ['description'];
public $primaryKey = "organizationid";
public $incrementing = false;
public $timestamps = false;
}

и это моя функция

public function saveOrganization(Request $request)
{
try {
$description = $request->input('description');
$organization = new Organization();
$organization->description = $description;
$organization->save();
if (!$organization) {
throw new \Exception("No se guardo la organizacion");
}
return response()->json([
'organization' => $organization,
], 200);
} catch (\Exception $ex) {
return response()->json([
'error' => 'Ha ocurrido un error al intentar guardar la organización',
], 200);
}
}

и это ответ

{"organization":{"description":"Restobar"}}

Как я могу сделать?

Спасибо вам!!

0

Решение

Поскольку вы создали новый объект, а не извлекли его из базы данных, единственные атрибуты, о которых он будет знать, это те, которые вы задали.

Если вы хотите получить остальные поля таблицы, вам нужно будет повторно получить объект после сохранения.

// create the new record.
// this instance will only know about the fields you set.
$organization = Organization::create([
'description' => $description,
]);

// re-retrieve the instance to get all of the fields in the table.
$organization = $organization->fresh();
4

Другие решения

$savedOrganization = Organization::create(
[
'description' => $description
]
);

return response()->json([
'organization' => $savedOrganization,
], 200)

И этот код бесполезен

if (!$organization) {
throw new \Exception("No se guardo la organizacion");
}
0

По вопросам рекламы [email protected]