Невозможно прикрепить пользователя к объекту в нитиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Невозможно прикрепить пользователя к объекту в нити

Сообщение Anonymous »

В моем проекте Laravel у меня есть страница администратора, сделанную с нити. Это позволяет мне создавать объект комнаты, и после создания пользователя, который его создал, должен быть добавлен в комнату. < /P>
Но по какой -то причине этого не происходит. Комната создается, но таблица поворота остается пустой.// CreateRoom.php
class CreateRoom extends CreateRecord
{
protected static string $resource = RoomResource::class;

protected function handleRecordCreation(array $data): Room
{
try {
$roomDomainService = app()->make(RoomDomainService::class);

$roomDTO = new RoomDTO($data['user_id'], $data['name'], $data['description'] ? $data['description'] : Optional::create());
$room = $roomDomainService->create($roomDTO);

return $room;
} catch (BindingResolutionException $e) {
throw $e;
}
}
}

< /code>
//RoomDomainService.php
public function create(RoomDTO $dto): Room
{
$room = new Room();
$this->update($room, $dto);

$this->userService->assignToRoom($dto->userId, $room->id);

return $room;
}

public function update(Room $room, RoomDTO $dto): void
{
$room->name = $dto->resolve($dto->name, $room->name);
$room->description = $dto->resolve($dto->description, $room->description);
$room->user_id = $dto->resolve($dto->userId, $room->user_id);

$room->save();
}
< /code>
//UserService.php
public function assignToRoom(int $userId, int $roomId)
{
$room = $this->roomRepository->find($roomId);
try {
$room->users()->attach($userId);
} catch(\Exception $e) {
throw $e;
}
}
< /code>
//Room.php
class Room extends Model
{
use SoftDeletes;

protected $guarded = [];

public function users() {
return $this->belongsToMany(User::class, 'room_user')->withTimestamps();
}

public function creator() {
return $this->belongsTo(User::class, 'user_id');
}
}
< /code>
//RoomController.php
public function create(RoomRequest $request)
{
$room = $this->roomDomainService->create($request->toDTO());
return response()->json([
'success' => true,
'data' => new RoomPresenter($room),
], 201);
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... n-filament
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»