2016-12-03 4 views
0

Я использую функцию addpermission для сохранения значений в таблице разрешений.как проверить вставку данных в таблицу в Laravel 5.2

public function addPermission(Request $request, $id, Permission $permission) 
{ 
    $this->validate($request, [ 
     'status' => 'required' 
    ]); 

    $permission = new Permission; 

    $permission->status = $request->input('status'); 
    $permission->project_id  = $id; 
    $permission->collaborator_id = $request->input('cid'); 
    $permission->save(); 
    return redirect()->back()->with(
     'info', 
     'Permission has been added to your Collaborator successfully' 
    ); 
} 

это моя permiisionadd форма действия

<form class="form-vertical" role="form" method="post" 
    action="{{ route('projects.collaborators.permission', $project->id,$collaborator->id) }}"> 

    <input type="hidden" id="cid" name="cid" value="{{ $collaborator->user()->first()->id }}" /> 
    <div class="form-group{{ $errors->has('status') ? ' has-error' : '' }}"> 
    <label for="status" class="control-label">Choose Permission</label> 
    <select name="status" id="status"> 
    <option value="">Choose a status</option> 
    <option value="3">View Only</option> 
    <option value="2">Edit Tasks</option> 
    <option value="1">Admin</option> 
    </select> 
    @if ($errors->has('status')) 
    <span class="help-block">{{ $errors->first('status') }}</span> 
    @endif 
    </div> 
     <div class="form-group"> 
     <button type="submit" class="btn btn-default">Create</button> 
     </div> 
     <input type="hidden" name="_token" value="{{ csrf_token() }}"> 

теперь мне нужно, чтобы проверить эту форму, если какой-нибудь пользователь добавить новое значение в существующей строке (сгенерировать сообщение)

, как я могу сделать это?

+0

У вас уже есть код подтверждения, Что проблема? –

+0

Нет, эта проверка для пустых значений. это означает, что если я нажимаю кнопку без значений, она будет проверяться. но если я добавлю значения одному и тому же пользователю для существующего, он также будет сохранен с новыми записями. Мне нужна проверка для этого (если я добавляю значения в существующие записи, которые он должен проверить) – Fernando

ответ

0

Если я вас правильно понял, вы, возможно, придется использовать уникальные правила проверки на ваши скрытые чид поле, как это:

 $this->validate($request, [ 
     'cid'  => 'unique:permissions,collaborator_id', 
     'status' => 'required' 
    ]); 

Таким образом, если пользователь уже имеет строку в таблице, он выиграл 'пусть он создаст новый, и будет отображаться ошибка проверки.

Однако, возможно, для этого нужно создать собственное сообщение об ошибке, чтобы помочь пользователю понять, почему его форма не принимается. Также не забудьте создать дополнительный срок где-то на вашей форме за ошибки в cid поле появится:

@if ($errors->has('cid')) 
    <span class="help-block">{{ $errors->first('cid') }}</span> 
@endif 
+0

Мне нужна ваша первая проверка. но когда я использовал его, возникла следующая ошибка ** синтаксическая ошибка, неожиданный '' статус '' (T_CONSTANT_ENCAPSED_STRING), ожидающий ']' ** – Fernando

+0

Да, после правила cid отсутствовала запятая. – LePhleg

+0

, но когда я вставил запятую, теперь произошла эта ошибка ** SQLSTATE [42S02]: Базовая таблица или представление не найдены: 1146 Таблица «samantha.permission» не существует (SQL: выберите count (*) как совокупность из 'permission', где 'cooperator_id' = 29) ** – Fernando

Смежные вопросы