由于我是Laravel的新手(2周前开始使用此框架),因此我很难在提交表单后立即将一个ID从一个表插入到另一个表中。
方案是我有一个表单,我想要的是第一个表(包表)中新提交的数据的id (p_id)插入第二个表(行程表)。以下是我的控制器和我的模型的代码:
public function store(Request $request){
request()->validate([
'packageName' => 'required',
'adultPrice' => 'required',
'childPrice' => 'required',
'infantPrice' => 'required',
'excessPrice' => 'required',
'type' => 'required',
'inclusions' => 'required',
'additionalInfo' => 'required',
'reminders' => 'required',
'photo' => 'required',
'tags' => 'required',
'noOfDays' => 'required',
'day' => 'required',
'time' => 'required',
'destination' => 'required'
]);
Packages::create($request->all());
Itinerary::create($request->all());
return redirect()->route('Agent.Packages');
}
class Itinerary extends Model{
public $fillable = [
'noOfDays',
'day',
'time',
'destination',
];
}
答案 0 :(得分:6)
create方法返回已保存的模型实例。
lastSignInTime
之后,您可以根据需要使用它来填充$package = Packages::create($request->all());
表。
Itinerary
由于您是Laravel的新手,我建议使用$itinerary = new Itinerary();
$itinerary->package_id = $package->id;
// Populate other fields
$itinerary->save();
方法填充它。在我看来,它更清楚地告诉您在代码中想要做什么。
答案 1 :(得分:0)
要将数据从第一个表插入第二个表, 首先,您需要获取最后一个Insert Id。
按如下方式更改您的代码:
$package = Packages::create($request->all());
$p_id = $package->id; // You will get your Id.
// Later you need to add it to below method.
$data = array_merge($p_id,$request->all()); // I`m not sure about this line...
Itinerary::create($data);