参加培训后添加观察(备注)

时间:2019-07-10 09:10:11

标签: laravel laravel-5

我实际上有3种形式:

第一个是students,其中包含两个字段(name, firstname)

第二个是trainings,具有2个字段(date_sitting,fk_student)。

enter image description here

下一个是表单observations,其中包含3个字段(title, description, fk_student)

enter image description here

我的问题是我可以为同一日期的 1个观察添加 2个日期开会

是否可以对此类型的案件进行封锁?

到目前为止,这是我的代码的想法:

public function store(Request $request)
    {
        $request->validate([
                'title' => 'required|string|max:30',
                'description' => 'required|string|max:80',
                'fk_student' => 'required'

        ]);

        $exists = Observation::where('title', $request->get('title'))->where('description', $request->get('description'))->where('fk_student', $request->get('fk_student'))->count();

        if (!$exists){

        $sittings = Training::where('fk_student', $request->get('fk_student'))->first();


        if(!isset($sittings)){ // No payment = block creation and return error msg.
            return redirect()->route('observations.index')
                    ->with('error', 'No sitting, no observation for you!');
        }
        else{
            Observation::create($request->all());
            return redirect()->route('observations.index')
                    ->with('success', 'new data created successfully');
            }
        }

        if(isset($exists)){
            return redirect()->route('observations.index')
                    ->with('error', 'Duplicate ! ');
        }
    }

谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

当然,您有正确的代码来查看是否已有观察。现在,您只需要检查该学生与观察在同一天是否有坐着。所以:

if (!$exists){

    $sitting = Training::where('fk_student', $request->get('fk_student'))
                ->where('date_sitting', , '=', **SOME formatted DATE**)->first();


    if(isset($sitting)){ // If we have a match to student on the requested date, no good, return.
        return redirect()->route('observations.index')
                ->with('error', 'You already have a sitting for this date!');
}

问题是当你说:

  

我的问题是我可以为同一日期的1个观察值添加2个日期开会。

我不知道“相同日期”是什么日期。与用户通过表格发送以请求坐姿的日期相同?还是在观察上设置日期? IE浏览器,我认为您需要确定要比较的日期-上面的代码中没有输入日期。您需要一个日期进行比较(可能是从馈入$request方法中注入的store()对象的用户表单中)进行比较,才能使上面的代码起作用。

相关问题