【问题标题】:How can I fetch detail of each perticular ID?如何获取每个特定 ID 的详细信息?
【发布时间】:2019-04-04 04:44:34
【问题描述】:

在我的列表视图中,我拥有休假的所有详细信息。但是当我点击详细信息时,它会显示一个弹出窗口。在弹出框中,它必须获取并给我特定字段的所有详细信息,但它总是给我最后插入记录的详细信息

这是我的列表文件的代码

 <table id="myTable" class="table table-bordered table-striped">
  <thead>
    <tr>
      <th>Employee Name</th>
      <th>Leave Type</th>
      <th>Leave Duration</th>
      <th>Applied On</th>
      <th>Status</th>
      <th>Action</th>
    </tr>
  </thead>
  <tbody>
    @if($allLeaves != null)
    @foreach($allLeaves as $leave)
    <tr>
      <td> {{ $leave->username }} </td>
      <td> {{ $leave->typeOfLeave }} </td>
      <td>
        {{ $leave->startDate }} To
        {{ $leave->endDate }}
      </td>
      <td> {{ $leave->startDate }} </td>
      <td>
        @if($leave['status']=='Pending')
        <span class="btn btn-warning">Pending</span>
        @elseif($leave['status']=='Approved')
        <span class="btn btn-success">Approved</span>
        @else
        <span class="btn btn-danger">Rejected</span>
        @endif
      </td>
      <td><a href = "{{ route( 'handle_leave', $leave->id)}}" data-toggle="modal" data-target="#details" class="btn btn-info text-white">Details</a></td>
    </tr>                                    
  </tbody>
</table>

在同一页面中我编写了获取记录的代码

 <form id="myform" class="form-horizontal" method="POST" action="{{ route('approve_leave', $leave->id) }}">
  @csrf
  <div class="card-body">
    <div class="row">
      <label class="col-md-6"><strong> Employee Name</strong></label>
      <div class="col-md-6">
        <input type="text" class="form-control" id="emp_name" disabled value="{{$leave->username}}" style="border:none">
      </div>
    </div>
    <br>
    <div class="row">
      <label class="col-md-6"><strong>Leave Type</strong></label>
      <div class="col-md-6">
        <input type="text" class="form-control" id="leavetype" disabled value="{{$leave->typeOfLeave}}" style="border:none">
      </div>
    </div>
    <br>
    <div class="row">
      <label class="col-md-6"><strong>Leave Duration</strong></label>
      <div class="col-md-6">
        <input type="text" class="form-control" id="leaveduration" disabled value="{{ $leave->startDate }} To {{ $leave->endDate }}" style="border:none">
      </div>
    </div>
    <br>
    <div class="row">
      <label class="col-md-6"><strong>Reason</strong></label>
      <div class="col-md-6">
        <input type="text" class="form-control" id="reason" disabled value="{{$leave->reasonForLeave}}" style="border:none">
      </div>
    </div>
    <br>
    <div class="row">

      <label class="col-md-6"><strong>Applied on</strong></label>
      <div class="col-md-6">
        <input type="text" class="form-control" id="appliedon" disabled value="{{$leave->startDate}}" style="border:none">
      </div>
    </div>
    <br>
    <div class="row">
      <label class="col-md-6"><strong>Action</strong></label>
      <div class="col-md-6">
        <select class="form-control" id="status" name="status" value="{{$leave->status}}">
          <option value="Pending" selected="selected">Pending</option>
          <option value="Approved">Approved</option>
          <option value="Rejected">Rejected</option>
        </select>
      </div>
    </div>
    @endforeach
    <br>
    <div class="row">
      <label class="col-md-6"><strong>Reason For Action</strong></label>
      <div class="col-md-6">
        <input type="text" class="form-control" id="reason" name="reasonForAction" placeholder="Reason Of Action" style="border:none">
      </div>
    </div>
    <br>
    <div class="modal-footer">
      <button type="submit" class="btn btn-info waves-effect" data-dismiss="modal">Save</button>
      <button type="button" class="btn btn-default waves-effect" data-dismiss="modal">Cancel</button>
    </div>

  </div>
</form>

这是我在控制器文件中编写的代码

//Code Of list view

    public function listOfLeave()
    {
        $allLeaves = LeaveManagement::all();
        return view('pages.leavelist', compact('allLeaves'));
    }

//Code of click on details button and fetch record of that particular id

    public function handleLeave($id)
    {
        $leave = LeaveManagement::find($id);
        return view('pages.leavelist', compact('leave', 'id'));
    }

//code of approve reject leave and change the status of leave
    public function approveLeave(Request $request ,$id)
    {
        $leave = LeaveManagement::find($id);
        $leave->status = $request->get('status');
        $leave->reasonForAction = $request->get('reasonForAction');
        $leave->save();

        return view('pages.leavelist');
    }

【问题讨论】:

    标签: laravel mongodb eloquent controller


    【解决方案1】:

    如果您想根据用户的 id 显示数据,那么您必须传递每个字段,如 data-fieldname,然后您可以获取该字段的数据,如脚本所示。

    按钮:

    <button type="button" 
           class="btn btn-xs btn-default confirm-modal" 
           data-toggle="modal" 
           data-target="#model" 
           data-id="{{ $singleRecord->id }}" 
           data-name="{{ $singleRecord->full_name  }}"
           data-leave_reason="{{ $singleRecord->leave_reason }}"                                                                                   
           data-from_date="{{ date('d-F-Y', strtotime($singleRecord->from_date)) }}"
           data-to_date="{{ date('d-F-Y', strtotime($singleRecord->to_date)) }}"                                                                         
     >Details </button>
    

    并添加脚本

     <script type="text/javascript">
            $('.confirm-modal').click(function (event) {
                $('.employee_name').text($(this).data('name'));
                $('#from_date').text($(this).data('from_date'));
                $('#to_date').text($(this).data('to_date'));
                $('#total_leaves').text($(this).data('total_leaves'));
                $('.leave_reason').text($(this).data('leave_reason'));
            })
        </script>
    

    在模型 div 中,添加每个 id 以显示该数据。

    <div class="col-md-12">
          <label for="to_date">To Date:</label>
          <span id="to_date"></span>
    

    希望这会有所帮助:)

    【讨论】:

    • 并尝试在模型 div 中使用类,因为您使用了多次
    【解决方案2】:

    编辑您的模态按钮和模态 ID,如下所示,

    <td><a href = "{{ route( 'handle_leave', $leave->id)}}" data-toggle="modal" data-target="#details_{{ $leave->id }}" class="btn btn-info text-white">Details</a></td>
    

    还有你的模态,

    <div id="details_{{ $leave->id }}" class="modal fade edit-form" role="dialog">
    

    或者您可以使用 javascript 来填充您的字段,

     <button type="button" class="btn btn-xs btn-default confirm-modal" data-toggle="modal" data-target="#details" 
      data-leave="{{ $leave }}">Details </button> 
    
     <script type="text/javascript">
            $(document).on('click', '.confirm-modal', function(e){
                var data = $(this).data('leave');
                $('#emp_name').text(data.username);
                $('#from_date').text(data.from_date');
                $('#to_date').text(data.to_date);
                $('#total_leaves').text(data.total_leaves);
                $('#leave_reason').text(data.leave_reason);
            })
     </script>   
    

    【讨论】:

    • 我建议两种方法哪一种或两种都不起作用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 2021-01-12
    • 1970-01-01
    • 2018-07-31
    • 2017-10-08
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多