Как вернуть / получить список в PHP Post?

-1

Я новичок в PHP и Laravel и сталкиваюсь с проблемами при возврате/получении всех объектов студента с помощью метода PHP post. То, что я пытаюсь сделать, это когда при нажатии кнопки "СОХРАНИТЬ" сохраняются все значения, присутствующие или отсутствующие для каждого учащегося. Прямо сейчас он только возвращает мне последнего студента для всех записей и сохраняет его. т.е. если учится 100 учеников, то 100 раз сохраняется посещаемость последнего ученика. Вот мой код:

<form action="store_attendence_student" method="POST">
  <div class="form-group">
            <label  class="control-label">Date:</label>
            <input name="attendecnedate" type="date" class="form-control">
        </div>
    @foreach($stdcourse1 as $d)     
        <h3> {{$d->student_registration_num}}</h3>
        <h3> {{$d->student_name}}</h3>
        <input type="hidden" name="s_id" value="{{$d->student_registration_num}}" >
        <input type="hidden" name="s_name" value="{{$d->student_name}}" >
      <select name="atten">
                <option value="present">Present</option>
                <option value="absent">Absent</option>
            </select>
      @endforeach
  <div class="form-layout-footer" style="margin-left: 40%">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    <button  type="submit" class="btn btn-success mg-r-5">  Save</button></a>
  </div>
</form>

Вот действие сохранения контроллера:

public function store_attendence_student(Request $request)
{
     $data7=teachers::select('teacher_id')->where('teacher_email','=',Session::get('teacher_username'))->pluck('teacher_id')->first();

     $course1= teachers::select('course_id')->where('teacher_id','=',$data7)->pluck('course_id')->first();

     $stdcourse1=student::leftjoin('courses','courses.sem_id','=','students.sem_id')->where('courses.id','=',$course1)
    ->select('students.student_name','students.student_id')->count();


     for ($i=0; $i < $stdcourse1 ; $i++) 
     { 
        $attendence = new attendence();
        $attendence->student_id=$request->s_id;
        $attendence->student_name=$request->s_name;
        $attendence->course_id=$course1;
        $attendence->teacher_id=$data7;
        $attendence->date=$request->attendecnedate;
        $attendence->status_attendence=$request->atten;
        $attendence->save();
     }


}
  • 0
    Вы должны назвать их по-разному, так как вы назвали всех студентов s_id и s_name, которые вы получаете только окончательные значения. Я предлагаю вам попробовать использовать s_id1, s_id2, s_id3 и т. Д. Для идентификаторов и s_name1, sname2, чтобы вы могли получать все данные из цикла
  • 0
    Вы должны назвать имена учеников в виде массива. s_id[] поэтому в коде PHP будет массив со всеми номерами студентов. И когда он будет отправлен, вы должны передать массив в состоянии условия, чтобы он выдал вам список всех пользователей в виде массива. Затем зациклите этот массив, используя foreach подготовьте массивы с обновленными значениями для каждого учащегося и, наконец, вызовите метод save() для объекта модели.
Показать ещё 3 комментария
Теги:
database
list
post

1 ответ

0

Попробуй это:

for ($i=0; $i < $stdcourse1 ; $i++) 
{ 
    $attendence = new attendence();
    $attendence->student_id=isset($request[$i]->s_id)? $request[$i]->s_id : '0';
    $attendence->student_name=isset($request[$i]->s_name) ? $request[$i]->s_name : '';
    $attendence->course_id=isset($course1[$i]) ? $course1[$i] : '';
    $attendence->teacher_id=isset($data7[$i]) ? $data7[$i] : '';
    $attendence->date=isset($request[$i]->attendecnedate) ? $request[$i]->attendecnedate : '2018-12-20 07:00:00'; **//change this static value to dynamic one**
    $attendence->status_attendence=isset($request[$i]->atten) ? $request[$i]->atten : '';
    $attendence->save();
}
  • 0
    Ошибка: «Попытка получить свойство необъекта»
  • 0
    Да, потому что я думаю, что в каждом индексе ваши значения не существуют. Я обновил свой ответ. сейчас попробуй пожалуйста.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню