简体   繁体   English

如何使用Laravel 5.2更新My值

[英]how can I update My values using Laravel 5.2

this is My addpermission function in My Controller, I need update function here to update values. 这是My Controller中的My addpermission函数,我需要更新函数来更新值。 how can I put update codes here. 如何在此处添加更新代码。 (I need update function in same addpermission function) (我在同一个addpermission函数中需要更新功能)

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');
}

updated i change code as following 更新我更改代码如下

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

  if(is_null($permission)) {
    $permission = new Permission;
    $msg = 'Permission has been added to your Collaborator successfully';
  } else {
    $permission = Permission::findOrFail($permission,['id'])->id;
    $msg = 'Permission updated successfully';
  }

  $permission->status = $request->input('status');
  $permission->project_id       = $id;
  $permission->collaborator_id =  $request->input('cid');
  $permission->save();
  return redirect()->back()->with('info', $msg);

data insert go successfully. 数据插入成功。 but update not success when I click button to update it is insert as new record to DB. 但是当我点击按钮更新它时更新不成功是作为新记录插入到DB。

My table name is permission and have these columns 我的表名是权限,并拥有这些列

id (autoincrement)
status
project_id
collaborator_id

how can fix this 怎么能解决这个问题

new updated 新的更新

ok this is My form 好的,这是我的表格

form class="form-vertical" role="form" method="post" action="{{ route('projects.collaborators.permission', $project->id) }}">
                        <!--<div id="cid" name="cid">{{ $collaborator->user()->first()->id}}</div>-->
                    <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() }}"> 

Your controller can be written as: 您的控制器可以写成:

public function addPermission(Request $request, $project_id, $permission_id = null)
{
  $this->validate($request, [
    'status'   => 'required'
  ]);

  if(is_null($permission_id)) {
    $permission = new Permission;
    $msg = 'Permission has been added to your Collaborator successfully';
  } else {
    $permission = Permission::find($permission_id);
    $msg = 'Permission updated successfully';
  }

  $permission->status = $request->input('status');
  $permission->project_id       = $id;
  $permission->collaborator_id =  $request->input('cid');
  $permission->save();
  return redirect()->back()->with('info', $msg);
}

So your route can be as: 所以你的路线可以是:

For add 添加

/project/{project_id}/permission

For update 更新

/project/{project_id}/permission/{permission_id}

Update 更新

Assuming you will have a $permission variable in the view when form is opened as edit, then you can write your form action as: 假设当表单作为编辑打开时,视图中将有$permission变量,那么您可以将表单操作编写为:

<form class="form-vertical" 
            role="form" 
            method="post" 
            action="{{ isset($permission) ? route('projects.collaborators.permission', ['project_id' => project->id, 'permission_id' => $permission->id]) : route('projects.collaborators.permission', ['project_id' => project->id]) }}">

And your route will be as: 你的路线将是:

Route::post('projects/{project_id}/permission/{permission_id‌​?}', [ 'uses' => 'ProjectCollaboratorsController@addPermission', 'as' => 'projects.collaborators.permission',]);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM