php - 使用唯一字段更新 Laravel 模型

标签 php validation laravel laravel-5 laravel-5.2

如果模型具有唯一字段,我将无法更新模型。我收到消息“名称已被占用”。

我的 Controller :

/**
 * Update the specified Category in storage.
 *
 * @param  int              $id
 * @param UpdateCategoryRequest $request
 *
 * @return Response
 */
public function update($id, UpdateCategoryRequest $request)
{
    $category = $this->categoryRepository->findWithoutFail($id);

    if (empty($category)) {
        Flash::error('Category not found');

        return redirect(route('categories.index'));
    }

    $category = $this->categoryRepository->update($request->all(), $id);

    Flash::success('Category updated successfully.');

    return redirect(route('categories.index'));
}

更新类别请求
 /**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return Category::$rules;
}

类别模型
    /**
 * Validation rules
 *
 * @var array
 */
public static $rules = [
    'name' => 'required|unique:categories,name'
];

我尝试将以下内容附加到我的规则中:
$this->id
$id

@include('adminlte-templates::common.errors')
       <div class="box box-primary">
           <div class="box-body">
               <div class="row">
                   {!! Form::model($category, ['route' => ['categories.update', $category->id], 'method' => 'patch']) !!}

                        @include('categories.fields')

                   {!! Form::close() !!}
               </div>
           </div>
       </div>

最佳答案

要从检查中排除当前模型,请将 ID 作为 3rd 传递柱子。

'name' => 'required|unique:categories,name,'. $this->id

关于php - 使用唯一字段更新 Laravel 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38257987/

相关文章:

php:根据下拉列表更改变量值

PHP MySQL : 2 similar queries echoes results of 2nd query only

php - Laravel-4 验证

php - Composer 告诉我 mbstring 在我的服务器上丢失,但它已启用 - 想法?

laravel - 如何使动态元数据更改 Vue 中 SEO 的实际页面源

php - 如何从 Laravel 4 中的表单字段获取所有输入文件

php - 德行 2 更改语言 native

php - 有条件地删除 Woocommerce 中的订单详细信息部分

shell - 使用 AWK 验证 if 循环条件中的日期格式

java - 在Java中检查BigDecimal小单位的最佳方法