jobs.edit.blade.php могут быть доступны зарегистрированным пользователям
из них бухгалтер может получить доступ к некоторым флажкам (видимым только ему)
Изменены значения базы данных (логическое значение)) в соответствии с флажками, предоставленными бухгалтером.
@can ('isAccountant')
//some code with checkboxes
@endcan
Проблема заключается в том, что, когда зарегистрированный пользователь получает доступ к jobs.edit.blade.php и передает (флажки не отображаются), все логические значения в базе данныхстановится нулем
Как мне избежать этой ситуации
jobs.edit.blade.php
@can ('isAccountant')
<div class="row">
<div id="status">
@if ($job->entered_status == '0')
<input type="checkbox" name="entered_status" @if($job->entered_status) checked @endif> Entered <br><br>
@elseif ($job->entered_status == '1')
<input type="checkbox" name="entered_status" checked value="1" disabled> Entered <br><br>
<input type='hidden' name='entered_status' value="1">
@endif
@if ($job->sales_status == '1')
<input type="checkbox" name="despatch_status" checked value="1" disabled> All Despatches Completed <br><br>
<input type="checkbox" name="invoice_status" checked value="1" disabled> All Invoices Completed
<input type='hidden' name='despatch_status' value="1">
<input type='hidden' name='invoice_status' value="1">
@endif
@if ($job->sales_status == '0' && $job->job_status == 'Completed' && $job->despatch_status == '0')
<input type="checkbox" name="despatch_status" @if($job->despatch_status) checked @endif value="1"> All Despatches Completed <br><br>
@endif
@if ($job->sales_status == '0' && $job->job_status == 'Completed' && $job->despatch_status == '1')
<input type="checkbox" name="despatch_status" checked value="1"> All Despatches Completed <br><br>
<input type="checkbox" name="invoice_status" @if($job->invoice_status) checked @endif value="1"> All Invoices Completed <br><br>
@endif
</div>
</div>
@endcan
JobController.php
public function update(Request $request, $id)
{
$job = Job::find($id);
$job->customer_name = $request->customer_name;
$job->company_name = $request->company_name;
$job->job_type = $request->job_type;
$job->job_owner = $request->job_owner;
$job->job_status = $request->job_status;
$job->despatch_status = $request->has('despatch_status');
$job->invoice_status = $request->has('invoice_status');
if ($job->despatch_status == 1 && $job->invoice_status == 1) {
$job->sales_status = 1;
}
$job->entered_status = $request->has('entered_status');
AuthServiceProvider.php
public function boot()
{
$this->registerPolicies();
Gate::define('isAdmin', function ($user) {
return $user->user_type == 'Admin';
});
Gate::define('isDirector', function ($user) {
return $user->user_type == 'Director';
});
Gate::define('isProduction', function ($user) {
return $user->user_type == 'Production';
});
Gate::define('isAccountant', function ($user) {
return $user->user_type == 'Accountant';
});
}
Расширенная ошибка
_token
"nzY5y8EW5yupkL3d6aL9bcpZRYmlc5YTN94ee1uI"
_method
"PATCH"
id
"10725"
customer_name
""
company_name
""
job_type
"""
Item:\r\n
Qty:\r\n
Size:\r\n
Paper:\r\n
Print:\r\n
Each:\r\n
Total:
"""
job_owner
"Sam"
job_status
"Pending"
job_delivery_date
""
job_delivery_time
""
pk_pkl
"PKL"
entered_status
"on"