Migration file:
public function up()
{
Schema::create('flightitems', function (Blueprint $table) {
$table->increments('id');
$table->datetime('arriveDateTime')->nullable()->default(null);
$table->datetime('departDateTime')->nullable()->default(null);
$table->string('destination');
$table->text('remark')->nullable();
$table->integer('customers_id')->unsigned();
$table->foreign('customers_id')->references('id')->on('customers');
$table->integer('flights_id')->unsigned();
$table->foreign('flights_id')->references('id')->on('flights');
$table->timestamps();
});
}
Controller for Store function
public function store(Request $request)
{
$rules = array(
'customer_name' => 'required',
'arriveDateTime' => 'required_without:departDateTime',
'departDateTime' => 'required_without:arriveDateTime',
);
$messages = array(
'customer_name.required'=>'Name is required',
'arriveDateTime.required_without'=>'Arrive DateTime required',
'departDateTime.required_without'=>'Depart DateTime required',
);
$validator = Validator::make(Input::all(), $rules, $messages);
if($validator->fails()){
return back()->withInput()->withErrors($validator);
}
elseif ($validator->passes()){
$flight = new Flight;
if($flight->save()){
$id = $flight->id;
foreach($request->customer_name as $key => $v){
$data = array('flights_id' => $id,
'customers_id' => $v,
'arriveDateTime' => date('Y-m-d H:i:s', strtotime($request->arriveDateTime)),
'departDateTime' => date('Y-m-d H:i:s', strtotime($request->departDateTime)),
'destination' => $request->destination,
'remark' => $request->remark,
);
Flightitem::insert($data);
}
}
}
}