mustang_shelby
@mustang_shelby
i like (*_metallica_*)

Проблема в eloquent c primary key, почему не присваивается?

Здравствуйте ! Просьба относиться к вопросу адекватно. Возможно здесь есть "похожие" вопросы на данную тематику.
Но у меня эта проблема вызвала определенные затруднения, я ее 2 недели не могу решить, я какие только ресурсы не облазил, решая это проблему собирал другие ошибки и вот снова вернулся к этой же.
Для меня не понятно (я гуглил ) автоматически ли при создании новой записи к primary key (user_id) приравнивается id (конечно же я написал cascade в migrate ) :
->onUpdate('cascade')
            ->onDelete('cascade');)

или нужно при insert писать типо - $user->user_id = $products->id ? (но я и так делал ...), я правда не пойму какой смысл делать $user->user_id = $products->id - если как говориться в разных ресурсах ->onUpdate('cascade') он автоматически должен добавлять эти данные при создании нового поста.
вот такая трудность. я не могу понять - автоматом ли primary key должен прихватывать id или нужно присваивать при insert?
буду благодарен за разьяснение и может быть ссылки на полезный материал который я еще не нашел сам
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@Mellorn
При добавлении новой записи никакие внешние ключи автоматом не подхватываются.
Вот давайте представим ситуацию.
Есть таблица categories и таблица products.
В последней есть столбец category_id - ввнешний ключ на id из таблицы categories.
И вот вы вставляете новую запись в таблицу products.
Каким образом БД должна будет узнать какой именно ID категории использовать?

И как уже заметили, связи eloquent - не тождественно внешним ключам в БД.

И тоже как уже отметили, для работы со связями используйте соответствующие методы eloquent.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
JhaoDa
@JhaoDa
LaravelRUS Team
Внешние ключи БД не имеют никакого отношения к связям Eloquent.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы