过滤 Laravel 用户以仅显示上传的用户
P粉373990857
P粉373990857 2023-09-03 00:26:34
[MySQL讨论组]

我想问,如何在用户1上将文件上传到网络,但仅将其附加到用户1,而目前它也附加到用户2,我的编码错误。

就像下面的示例图片一样: 图片网络

看一下图片,如果已经上传了,在“Bahasa Indonesia”SUBJECT 中将其状态改为 Submitted,但是对于用户 2 来说还没有上传,但是也变成了 Submitted,用户 2 的状态肯定是 Waiting因为还没有上传。这里附上我在用户1上上传的mysql: 图像MySqli

AssignmentStudentController

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

AssignmentStudentController.php

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

P粉373990857
P粉373990857

全部回复(1)
P粉797855790

除了模型中的分配方法之外,您还可以通过定义新方法来进行检查:

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;
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号