Laravel - Как отобразить Отправить Редактировать и Удалить на основе is_approved - PullRequest
0 голосов
/ 05 марта 2020

У меня есть этот код в моем Laravel -5,8

public function index()
{
    $userCompany = Auth::user()->company_id;
    $userEmployee = Auth::user()->employee_id;
    $identities = DB::table('appraisal_identity')->select('id')->where('company_id', $userCompany)->where('is_current', 1)->first();
    $goals = AppraisalGoal::where('employee_id', $userEmployee)->where('appraisal_identity_id', $identities->id)->get();

    return view('appraisal.appraisal_goals.index')->with('goals', $goals);
}

представлении

   <td>
      @if ($goal->is_approved == 3)
            <span class="badge bg-success" >Approved</span>
      @elseif ($goal->is_approved == 2)
              <span class="badge bg-danger">Not Approved</span>
      @elseif ($goal->is_approved == 1)
           <span class="badge bg-info">Awaiting Approval</span>                                  
      @else
           <span class="badge bg-black">Draft</span>                                    
       @endif
  </td>
      <td>                               
          @can('appraisal_goal_show')
             <a class="btn btn-xs btn-primary" href="{{ route('appraisal.appraisal_goals.show', $goal->id) }}">
                  {{ trans('global.view') }}
             </a> 
          @endcan
          @can('appraisal_goal_edit')
              <a class="btn btn-xs btn-info" href="{{ route('appraisal.appraisal_goals.edit', ['id'=>$goal->id]) }}">
                   {{ trans('global.edit') }}
              </a>
           @endcan
           @can('appraisal_goal_delete')
               <button class="btn btn-xs btn-danger" type="submit" onclick="deleteTag({{ $goal->id }})">
                      Delete
               </button>
            <form id="delete-form-{{ $goal->id }}" action="{{ route('appraisal.appraisal_goals.destroy',$goal->id) }}" method="POST" style="display: none;">
                   @csrf
                    @method('DELETE')
              </form>
             @endcan   
       </td>

        <div class="col-12">
                &nbsp;&nbsp;&nbsp;<a href ="{{ route('post.publish.all')}}" class="btn btn-primary float-left"><i class="fas fa-arrow-right"></i> Submit</a>                         
        </div>  

Я хочу применить эти условия.

  1. Редактирование должно быть видно только тогда, когда is_approved = 1 или 2 или 3
  2. Удалить должно быть видно только тогда, когда is_approved = 0 или 2
  3. Кнопка отправки должна быть видимой только когда is_approved = 1 или 2

Как мне этого добиться?

Спасибо

1 Ответ

0 голосов
/ 05 марта 2020

Вы можете вкладывать каждую из ваших кнопок в @if и проверять значение is_approved с помощью функции in_array:

@if(in_array($goal->is_approved, [1, 2, 3]))
    @can('appraisal_goal_edit')
        <a class="btn btn-xs btn-info" href="{{ route('appraisal.appraisal_goals.edit', ['id'=>$goal->id]) }}">
            {{ trans('global.edit') }}
        </a>
    @endcan
@endif

Вы можете сделать то же самое для кнопок удаления и отправки и просто изменить 2-й аргумент in_array.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...