Laravel Вставить идентификатор из одной таблицы в другую после отправки формы - PullRequest
0 голосов
/ 11 марта 2020

в основном у меня есть три таблицы,

sms_content, sms_content_cities, sms_content_categories,

sms_content имеет ключ foregin в обеих других таблицах. Я хочу сохранить запись в этих таблицах сразу. Как и я хочу сохранить sms_content_id в других таблицах sms_content_cities и sms_content_categories.

Вот мой код:

    $model = new SmsContent();
    $model->version = 0;
    $model->sms_from = 1;
    $model->sms_text = $inputs['sms_text'];

    $date = strtotime($inputs['start_date']);
    $startDate = date("Y-m-d H:i:s", $date);
    $noteID = $date;
    $model->start_date = $startDate;

    $endDate = date("Y-m-d", strtotime($inputs['end_date']));
    $model->end_date = $endDate;
    $model->title_audio = (isset($inputs['title_audio'])) ? $inputs['title_audio'] : "";
    $model->audio = (isset($inputs['audio'])) ? $inputs['audio'] : "";
    $model->enabled = 1;
    $model->ivr_enabled = 1;
    $model->note_id = DB::raw($noteID);
    $model->sort_order = 0;
    $model->save();

этот код сохраняет мой в таблице sms_content, но я не знаю, как сохранить его значения в другой таблице, как я хочу сохранить sms_content "Id" в других таблицах в качестве ключа foregin.

Ответы [ 3 ]

1 голос
/ 11 марта 2020

Как только вы сделаете $model->save(), id будет сохранено в коллекции $model. Вы можете просто получить к нему доступ, используя $model->id.

Попробуйте dd($model->id); после оператора save ().

1 голос
/ 11 марта 2020

Вы можете получить доступ к свойствам модели, как только сохраните их в своей базе данных. Чтобы обновить ваши другие модели данными нужного вам идентификатора, вы можете просто сделать что-то вроде этого:

$model1 = new SmsContent();
$model1->version = 0;
$model1->sms_from = 1;
//... and so on
$model1->save();

$model2 = new Model2();
$model2->sms_content_id = $model1->id;
//... and so on
$model2->save();

$model3 = new Model3();
$model3->sms_content_id = $model1->id;
//... and so on
$model3->save();
1 голос
/ 11 марта 2020

После создания записи в базе данных вы можете сразу же получить доступ к ее идентификатору, как показано ниже:

$model->id

Теперь, когда вы можете получить к ней доступ, просто создайте новый объект другого Model и сохраните его там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...