首頁  >  問答  >  主體

過濾 Laravel 用戶以僅顯示上傳的用戶

<p>我想問,如何在用戶1上將文件上傳到網絡,但僅將其附加到用戶1,而目前它也附加到用戶2,我的編碼錯誤。 </p><p> 就像下面的範例圖片一樣: 圖片網</p><p> 看一下圖片,如果已經上傳了,在「Bahasa Indonesia」SUBJECT 中將其狀態改為Submitted,但是對於用戶2 來說還沒有上傳,但是也變成了Submitted,用戶2 的狀態肯定是Waiting因為還沒有上傳。這裡附上我在用戶1上傳的mysql: ImageMySqli

<p><strong>AssignmentStudentController</strong></p> <pre class="brush:php;toolbar:false;">公用函數 DataAssignment(){ $userAssignments = 作業::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) -> 獲取(); 返回視圖('student.assignment.data_assignment',緊湊('userAssignments')); }</pre> <p><strong>AssignmentStudentController.php</strong></p>

    <tr>
        <第範圍=“col”類別=“py-3 px-6”>
            主題
        
        <第範圍=“col”類別=“py-3 px-6”>
            標題
        
        <第範圍=“col”類別=“py-3 px-6”>
            到期日
        
        <第範圍=“col”類別=“py-3 px-6”>
            提交日期
        
        <第範圍=“col”類別=“py-3 px-6”>
            地位
        
        <第範圍=“col”類別=“py-3 px-6”>
            分數
        
        <第範圍=“col”類別=“py-3 px-6”>
            行動
        
    </標題>
    <正文>
    @forelse($userAssignments 為 $data)
        

            <第範圍=“行” class=“py-4 px-6 font-medium text-gray-900 whitespace-nowrap dark:text-white”>
                {{$data->subjects->name_subject}}
            
{{$data->標題}} </td> {{ date('d M Y - H:m', strtotime($data->due_date)) }} WIB </td> {{ (!empty($data->作業->id_student)) ? date('d M Y - H:m' ,strtotime($data->assignments->updated_at)):'尚未上傳' }}</td> {{ (!empty($data->作業->id_student)) ? '已提交':'等待' }} </td> {{ (!empty($data->作業->id_student)) ? ($data->作業->分數) ? $data->作業->分數:'進程':'0' }} </td> @if(!empty( $data->作業->id_student)) <a href="{{ (!empty($data->assignments->file_assignment))? url('上傳/作業/學生/'.$data->作業->file_assignment):''}}"下載> <路徑填入規則=“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 00.293.707l2.828 2.829a1 100. Clip-rule=“evenodd”></path> </svg> </a> @別的 @萬一 <a type="按鈕" data-modal-toggle=“{{route('input.assignment', $data->id_id)}}”> <路徑填入規則=“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 0015.4862H 10. 1 1 0 100 2h2v2a1 1 0 102 0v-2h2a1 1 0 100-2h-2V8z” Clip-rule=“evenodd”></path> </svg> </a> P粉373990857P粉373990857383 天前670

全部回覆(1)我來回復

  • P粉797855790

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

    除了模型中的分配方法之外,您還可以透過定義新方法來進行檢查:

    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;
        }
    }

    使用時,可以使用 !$data->checkStudentAssignmentIsNull() 而不是 !empty($data->assignments->id_student)

    我現在可以更清楚地看到您的表格:

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

    回覆
    0
  • 取消回覆