search

Home  >  Q&A  >  body text

Filter Laravel users to show only uploaded users

<p>I want to ask, how can I upload a file to the network on user 1, but only attach it to user 1, while currently it is also attached to user 2, my coding is wrong. </p><p> Just like the example image below: Picture Network</p><p> Take a look at the picture. If it has been uploaded, change its status to Submitted in the "Bahasa Indonesia" SUBJECT. However, for user 2, it has not been uploaded yet, but it has also become Submitted. User 2's status must be Waiting because it has not been uploaded yet. Upload.这里附上我在用户1上上传的mysql: 图像MySqli</p> <p><strong>AssignmentStudentController</strong></p> <pre class="brush:php;toolbar:false;">public function DataAssignment(){ $userAssignments = Assignment::join('subjects', 'assignments.id_subject', '=', 'subjects.id_sub') ->join('class_infos', 'subjects.id_class', '=', 'class_infos.id') ->join('class_details', 'class_infos.id', '=', 'class_details.id_class') ->where('class_details.id_user', '=', Auth::user()->id) ->get(); return view('student.assignment.data_assignment', compact('userAssignments')); }</pre> <p><strong>AssignmentStudentController.php</strong></p> <pre class="brush:php;toolbar:false;"><table class="w-full text-sm text-left text-gray-500 dark:text-gray-400"> <thead class="text-xs text-white uppercase bg-[#464867] dark:bg-[#464867]"> <tr> <th scope="col" class="py-3 px-6"> Subject </th> <th scope="col" class="py-3 px-6"> Title </th> <th scope="col" class="py-3 px-6"> Due Date </th> <th scope="col" class="py-3 px-6"> Submission Date </th> <th scope="col" class="py-3 px-6"> Status </th> <th scope="col" class="py-3 px-6"> Score </th> <th scope="col" class="py-3 px-6"> Action </th> </tr> </thead> <tbody> @forelse($userAssignments as $data) <tr class="bg-white border-b dark:bg-gray-900 dark:border-gray-700"> <th scope="row" class="py-4 px-6 font-medium text-gray-900 whitespace-nowrap dark:text-white"> {{$data->subjects->name_subject}} </th> <td class="w-24 px-6 py-4 text-sm font-medium text-gray-900 whitespace-nowrap dark:text-white"> {{$data->title}} </td> <td class="py-4 px-6 font-medium text-gray-900 whitespace-nowrap dark:text-white"> {{ date('d M Y - H:m', strtotime($data->due_date)) }} WIB </td> <td class="py-4 px-6 font-medium text-gray-900 whitespace-nowrap dark:text-white"> {{ (!empty($data->assignments->id_student)) ? date('d M Y - H:m' ,strtotime($data->assignments->updated_at)):'Not uploaded yet' }}</td> <td class="py-4 px-6 font-medium text-gray-900 whitespace-nowrap dark:text-white"> {{ (!empty($data->assignments->id_student)) ? 'Submitted':'Waiting' }} </td> <td class="py-4 px-6 font-medium text-gray-900 whitespace-nowrap dark:text-white"> {{ (!empty($data->assignments->id_student)) ? ($data->assignments->score) ? $data->assignments->score :'Process':'0' }} </td> <td class="py-4 px-6 flex font-medium text-gray-900 whitespace-nowrap dark:text-white"> @if(!empty( $data->assignments->id_student)) <a href="{{ (!empty($data->assignments->file_assignment))? url('upload/assignment/students/'.$data->assignments->file_assignment):''}}" download> <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" viewBox="0 0 20 20" fill="currentColor"> <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z" clip-rule="evenodd"></path> </svg> </a> @else @endif <a type="button" data-modal-toggle="{{route('input.assignment', $data->id_id)}}"> <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" viewBox="0 0 20 20" fill="currentColor"> <path fill-rule="evenodd" d="M6 2a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V7.414A2 2 0 0015.414 6L12 2.586A2 2 0 0010.586 2H6zm5 6a1 1 0 10-2 0v2H7a1 1 0 100 2h2v2a1 1 0 102 0v-2h2a1 1 0 100-2h-2V8z" clip-rule="evenodd"></path> </svg> </a> <a href="{{ (!empty($data->file_asg))? url('upload/assignment/question/'.$data->file_asg):url('images/no_image.jpg') }}" download> <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10" viewBox="0 0 20 20" fill="currentColor"> <path fill-rule="evenodd" d="M6 2a2 2 0 00-2 2v12a2 2 0 002 2h8a2 2 0 002-2V7.414A2 2 0 0015.414 6L12 2.586A2 2 0 0010.586 2H6zm5 6a1 1 0 10-2 0v3.586l-1.293-1.293a1 1 0 10-1.414 1.414l3 3a1 1 0 001.414 0l3-3a1 1 0 00-1.414-1.414L11 11.586V8z" clip-rule="evenodd"></path> </svg> </a> </td> </tr> @empty <tr colspan = "7" class="bg-white border-b dark:bg-gray-900 dark:border-gray-700"> <td class="py-4 px-6 font-medium text-gray-900 whitespace-nowrap dark:text-white"> No Data </td> </tr> @endforelse </tbody> </table></pre></p>
P粉373990857P粉373990857477 days ago761

reply all(1)I'll reply

  • P粉797855790

    P粉7978557902023-09-03 23:20:04

    In addition to the assignment method in the model, you can also check by defining a new method:

    class Assignment extends Model
    {
        public function assignments()
        {
            return $this->hasMany(<YOUR_ASSIGNMENTS_TABLE_NAME>::class, 'id_assignment', 'id_id');
        }
    
        // new method
        public function checkStudentAssignmentIsNull()
        {
            return $this->hasMany(<YOUR_ASSIGNMENTS_TABLE_NAME>::class, 'id_assignment', 'id_id')
                ->where('<YOUR_ASSIGNMENTS_TABLE_NAME>.id_student', Auth::user()->id)
                ->first() === null;
        }
    }

    When using, you can use !$data->checkStudentAssignmentIsNull() instead of !empty($data->assignments->id_student).

    I can see your table more clearly now:

    // new method
    public function checkStudentAssignmentIsNull()
    {
        return $this->hasMany(AssignmentDetail::class, 'id_assignment', 'id_id')
            ->where('assignment_details.id_student', Auth::user()->id)
            ->first() === null;
    }

    reply
    0
  • Cancelreply