【发布时间】:2025-12-26 23:15:11
【问题描述】:
我的项目是创建一所小型摩托车驾驶学校。
我有 4 张桌子:Former, Training, Revision, Motorbike
我的函数 create() 和 store() 适用于我的 4 个表单。
但是,我有一个大问题......如果,我的摩托车在revision on03/09/2019 to 05/09/2019 for the motorbike000001
并且我在training 的表单中编码03/09/2019 上的预订,并使用摩托车号码000001;平时摩托车不可用,怎么办?
是否可以为revision ->training 或相反的training ->revision 形式创建重复系统
在我的控制器版本中,我有这个:
public function index()
{
$revisions = Revision::oldest()->paginate(5);
return view('admin.revisions.index', compact('revisions'))
->with('i', (request()->input('page',1) -1)*5);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$motorbikes = Motorbike::all();
return view('admin.revisions.create', compact('motorbikes','revisions'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$date_revision_start = $request->get('date_revision_start');
$date_revision_end = $request->get('date_revision_end');
$hour_start = $request->get('hour_start');
$hour_end = $request->get('hour_end');
$garage = $request->get('garage');
$fk_motorbike = $request->get('fk_motorbike');
$conflict = Revision::where('fk_motorbike', $request->get('fk_motorbike'))->whereDate('date_revision_start', "<=" , $date_revision_start)
->whereDate('date_revision_end', ">=", $date_revision_start)
->first();
$conflict2 = Revision::where('fk_motorbike', $request->get('fk_motorbike'))->whereDate('date_revision_start', "<=" , $date_revision_end)->whereDate('date_revision_end', ">=", $date_revision_end)->first();
if(isset($conflict2) || isset($conflict)){
return redirect()->route('revisions.index')
->with('error', 'duplicate');
}
else{
Revision::create($request->all());
return redirect()->route('revisions.index')
->with('success', 'new data created successfully');
}
}
对于控制器培训
public function index()
{
$trainings = Training::oldest()->paginate(5);
return view('admin.trainings.index', compact('trainings'));
with('i', (request()->input('page', 1) -1) *5);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$motorbikes = Motorbike::all();
$formers = Former::all();
return view('admin.trainings.create', compact('motorbikes','formers','trainings'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'date_seance' => 'required',
'hour_start' => 'required',
'hour_end' => 'required',
'fk_motorbike' => 'required',
'fk_former' => 'required'
]);
$exists = Training::where('date_seance', $request->get('date_seance'))->where('hour_start', $request->get('hour_start'))->where('hour_end', $request->get('hour_end'))->where('fk_motorbike', $request->get('fk_motorbike'))->count();
if (!$exists){
Training::create($request->all());
return redirect()->route('trainings.index')
->with('success', 'Add');
}
else{
return redirect()->route('trainings.index')
->with('error', 'Duplicate ');
}
}
你能帮帮我吗,因为我还是 Laravel 的初学者,我想解决这个问题。
提前致谢
编辑
$date_start = $request->get('date_seance');
$fk_motorbike = $request->get('fk_motorbike');
$hour_start = $request->get('hour_start');
$hour_end = $request->get('hour_end');
$conflictRevision = Revision::where('fk_motorbike', $fk_motorbike)
->whereDate('date_revision_start', "<=" , $date_start)
->whereDate('date_revision_end', ">=", $date_start)
->where('hour_start', "<=" , $hour_start)
->where('hour_end', "<=" , $hour_end)
->first();
$conflictTraining = Training::where('fk_motorbike', $fk_motorbike)
->whereDate('date_seance', "=" , $date_start)
->where('hour_start', "<=" , $hour_start)
->where('hour_end', "<=" , $hour_end)
->first();
if(isset($conflictTraining) || isset($conflictRevision)){
return redirect()->route('trainings.index')
->with('error', 'Duplicate ');
}
else{
Training::create($request->all());
return redirect()->route('trainings.index')
->with('success', 'Add');
}
【问题讨论】:
-
我不太明白,您能详细说明一下您的问题吗?
-
如果我理解正确,您想在提交培训预订表格时验证所选摩托车是否可用(即未修订) - 对吗?
-
@James:是的,没错……我被困了好几天……:-(
-
@Jesus Erwin Suarez:当我的摩托车(编号)
000001在 2019 年 8 月 9 日修改为09/09/2019时,我必须在 08/09 组织一次降神会/ 2019`总是和摩托车一起000001,我必须有一个检查系统来检查摩托车是否可用......这里,例如,自行车必须不可用。