Я использую Laravel -5,8 для своего веб-приложения. У меня есть эти строки кода:
Модель
class AppraisalGoal extends Model
{
protected $table = 'appraisal_goals';
protected $fillable = [
'goal_type_id',
'appraisal_identity_id',
'employee_id',
'company_id',
'is_published',
'is_approved',
'weighted_score',
'employee_comment',
'line_manager_comment',
'goal_title',
'appraisal_doc',
'appraisal_start_date',
'appraisal_end_date',
];
public function goaltype()
{
return $this->belongsTo('App\Models\Appraisal\AppraisalGoalType','goal_type_id');
}
public function appraisalgoaldetail(){
return $this->hasMany('App\Models\Appraisal\AppraisalGoalDetail');
}
}
class AppraisalGoalDetail extends Model
{
protected $table = 'appraisal_goal_details';
protected $fillable = [
'name',
'company_id',
'appraisal_goal_id',
'kpi_description',
'appraisal_doc',
'activity',
'start_date',
'end_date',
];
public function appraisalgoal()
{
return $this->belongsTo('App\Models\Appraisal\AppraisalGoal');
}
}
Контроллер
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();
$linemanager = DB::table('hr_employees')->select('line_manager_id')->where('employee_id', $userEmployee)->first();
$linemanageremail = DB::table('hr_employees')->select('email')->where('id', $userEmployee)->first();
$goals = AppraisalGoal::where('employee_id', $userEmployee)->where('appraisal_identity_id', $identities->id)->get();
}
просмотр
<div class="card-body">
<div class="table-responsive">
<table class=" table table-bordered table-striped table-hover datatable">
<thead>
<tr>
<th width="10%">
Goal Type
</th>
<th width="20%">
Goal Title & Description
</th>
<th class="text-center" width="40%">
Activities & KPIs
</th>
<th width="11%">
Start Date - End Date
</th>
<th>
Weight
</th>
<th>
Status
</th>
<th>
</th>
</tr>
</thead>
<tbody>
@foreach($goals as $key => $goal)
<td>
<!--{{ $goal->goaltype ? $goal->goaltype->name : 'Uncategorized' }}-->
{{$goal->goaltype->name ?? '' }}
</td>
<td>
<b>{{$goal->goal_title ?? '' }}</b>
<br><br>
{!! Str::words($goal->goal_description, 20, '') !!}
@if(str_word_count($goal->goal_description) > 20)
<a class="btn btn-xs btn-info" href="{{ route('appraisal.appraisal_goals.show', $goal->id) }}"> Show more </a>
@endif
</td>
<td>
<table class="table">
<thead>
<tr>
<th width="50%">
Activity
</th>
<th width="50%">
KPIs
</th>
</tr>
</thead>
<tbody>
@foreach($goal->appraisalgoaldetail as $key => $appraisalgoaldetail)
<tr>
<td>
{{$key+1}}. {{$appraisalgoaldetail->activity}}
</td>
<td>
{{$appraisalgoaldetail->kpi_description}}
</td>
</tr>
@endforeach
</tbody>
</table>
</td>
<td>
{{Carbon\Carbon::parse($goal->appraisal_start_date)->format('M d, Y') ?? '' }} - {{Carbon\Carbon::parse($goal->appraisal_end_date)->format('M d, Y') ?? '' }}
</td>
<td>
{{$goal->weighted_score ?? '' }}
</td>
<td>
@if ($goal->is_approved == 2)
<span class="badge bg-success" >Approved</span>
@elseif ($goal->is_approved == 1)
<span class="badge bg-info">Awaiting Approval</span>
@else
<span class="badge bg-danger">Draft</span>
@endif
</td>
<td>
@can('appraisal_goal_show')
<div class="btn-group">
<a title={{ trans('global.detail') }} href="{{ route('appraisal.appraisal_goals.show', $goal->id) }}" class="btn btn-primary btn-sm"><i class="fa fa-eye"></i>
</a>
</div>
@endcan
@can('appraisal_goal_edit')
<div class="btn-group">
<a title={{ trans('global.edit') }} href="{{ route('appraisal.appraisal_goals.edit', ['id'=>$goal->id]) }}" class="btn btn-info btn-sm"><i class="fa fa-edit"></i></a>
</div>
@endcan
@can('appraisal_goal_delete')
<div class="btn-group">
<a title={{ trans('global.delete') }} class="btn btn-danger btn-sm" data-toggle="modal" data-target="#confirm-delete{{ $goal->id }}" data-original-title="Close">
<span style="color:white;"><i class="fa fa-fw fa-trash"></i></span>
</a>
</div>
@endcan
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div>
<button type="submit" class="btn btn-primary"><i class="fas fa-arrow-right"></i> {{ trans('global.submit') }}</button>
</div>
</div>
Когда я нажимаю кнопку отправки:
Я хочу, чтобы приложение проверяло таблицу appraisal_goals на основе текущей записи в контроллере индекса. Если is_published равно 0, оно должно измениться на 1
Отправлять уведомления в $ linemanageremail, что $ userEmployee опубликовал $ goal-> goal_title (каждый из них) для $ identity.
Как мне изменить мой контроллер и просмотр для достижения этих целей?
Спасибо.