Laravel 11 — validated() и связанная таблицаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel 11 — validated() и связанная таблица

Сообщение Anonymous »

Я хотел бы вставить идентификатор текущего пользователя в таблицу в столбце «user_id». Поле является отношением к пользовательской таблице.
Схема миграции/базы данных

Код: Выделить всё

        Schema::create('pdlocations', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->decimal('lon', 10, 7);
$table->decimal('lat', 10, 7);
$table->string('map');
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')
->references('id')
->on('users');
});
В контроллере (Pdlocation Controller.php)

Код: Выделить всё

   public function store(PdlocationStoreRequest $request): RedirectResponse
{
$request->merge([
'user_id' => auth()->user()->id,
//            'user_id' => auth()->user(),
]);

$this->validate($request, [
'user_id' => 'required|exists:users,id',
]);

Pdlocation::create($request->validated());

return redirect()->route('admin.pdlocation.index')
->with('success', 'Pdlocation created successfully.');
}
При объединении в запрос текущего userID auth()->user()->id я получаю следующее сообщение об ошибке:

Код: Выделить всё

SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value

insert into
`pdlocations` (`map`, `lon`, `lat`, `updated_at`, `created_at`)
values
(test, 66, 55, 2024 -06 -21 18: 42: 57, 2024 -06 -21 18: 42: 57)
Если вместо этого объединить в запрос пользовательский объект auth()->user(), валидатор сообщит, что выбранный идентификатор пользователя недействителен.
Есть идеи или предложения, чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/786 ... ated-table
Ответить

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

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

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

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

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