提交表单后,Laravel 将 ID 从一个表插入到另一个表
Posted
技术标签:
【中文标题】提交表单后,Laravel 将 ID 从一个表插入到另一个表【英文标题】:Laravel Insert ID from one table to another after submition of form 【发布时间】:2020-03-11 10:11:37 【问题描述】:基本上我有三张桌子,
短信内容, 短信内容城市, 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" 作为外键保存在其他表中。
【问题讨论】:
【参考方案1】:在数据库中创建记录后,您可以立即访问其 id,如下所示:
$model->id
现在您可以访问它,只需创建其他 Model
的新对象并将其保存在那里。
【讨论】:
【参考方案2】:只要您执行$model->save()
,id
就会保存在$model
集合中。您只需使用 $model->id
即可访问它。
在 save() 语句之后尝试dd($model->id);
。
【讨论】:
【参考方案3】:您可以在将模型属性保存到数据库后立即访问它们。为了使用您需要的 id 数据更新您的其他模型,您可以简单地执行以下操作:
$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();
【讨论】:
很高兴我能帮上忙。如果答案引导您找到您的解决方案,请将其标记为已接受,以便其他人可以轻松找到它。以上是关于提交表单后,Laravel 将 ID 从一个表插入到另一个表的主要内容,如果未能解决你的问题,请参考以下文章
在 laravel 中通过 ajax 提交简单的表单,之后,将新行插入到现有表中,其中包含来自提交表单的数据