gpt4 book ai didi

php - 如何使用 Laravel 5.2 更新我的值

转载 作者:行者123 更新时间:2023-11-30 22:08:40 27 4
gpt4 key购买 nike

这是我的 Controller 中的我的 addpermission 函数,我需要在这里更新函数来更新值。我怎样才能把更新代码放在这里。 (我需要在同一个 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');
}

已更新我更改代码如下

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

数据插入成功。但是当我单击按钮更新时更新不成功,它作为新记录插入到数据库中。

我的表名是允许的并且有这些列

id (autoincrement)
status
project_id
collaborator_id

如何解决这个问题

新更新

好的,这是我的表单

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() }}">

最佳答案

你的 Controller 可以写成:

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

所以你的路线可以是:

添加

/project/{project_id}/permission

待更新

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

更新

假设当表单以编辑方式打开时,您将在 View 中有一个$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]) }}">

你的路线如下:

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

关于php - 如何使用 Laravel 5.2 更新我的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40843958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com