搜索

首页  >  问答  >  正文

过滤 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>

        <第范围=“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}}
            
    @空的
        <tr colspan=“7” class=“bg-white border-b dark:bg-gray-900 dark:border-gray-700”>
            
    @endforelse
    </tbody>
</表></pre></p>
P粉373990857P粉373990857447 天前753

全部回复(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
  • 取消回复
  • {{$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 1 0 101.415-1.415-1.415L11 9.586V6ZZ&quot 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 0010.586 2H6zm5 6a1 1 0 10-2 H7a1 1 0 100 2h2v2a1 1 0 102 0v-2h2a1 1 0 100-2h-2V8z” Clip-rule=“evenodd”></path> </svg> </a> <路径填充规则=“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>
    没有数据 </td>