SQLSTATE [42S22]:未找到列:1054 laravel 5.4中“字段列表”中的未知列“类别”

问题描述 投票:-4回答:1

这个错误是什么?我试了9.5个小时,但是我收到了一个错误。

SQLSTATE [42S22]:未找到列:1054'字段列表'中的未知列'类别'(SQL:update articles set updated_at = 2017-12-22 00:28:36,category = 1其中id = 5)

ArticleController

public function update(ArticleRequest $request, Article $article)
    {
        $file = $request->file('images');
        $inputs = $request->all();
        $article->categories()->sync(request('category'));

        if($file)
        {
            $inputs['images'] = $this->uploadImages($request->file('images'));
        }
        else
        {
            $inputs['images'] = $article->images;
            $inputs['images']['thumb'] = $inputs['imagesThumb'];
        }

        unset($inputs['imagesThumb']);
        $article->update($inputs);

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

Article.php

class Article extends Model
{

    public function categories()
        {
            return $this->belongsToMany(Category::class);
        }
}

Category.php

class Category extends Model
{
    protected $fillable = ['name', 'slug'];

    public function articles()
    {
        return $this->belongsToMany(Article::class);
    }
}

edit.blade.php

<select name="category[]" class="form-control" id="category" title=" Select your category..." multiple>
     @foreach( $categories as $id => $name )
             <option value="{{ $id }}" {{ in_array($id , $article->categories()->pluck('id')->toArray()) ? 'selected' : '' }}>{{ $name }}</option>
     @endforeach
</select>

我想编辑文章表格。

laravel
1个回答
0
投票

如果您的请求中有类别作为字段,并且未通过$fillable数组进行过滤,则即使您没有类别列,该字段也会传递到数据库表进行存储。

要么; a)创建一个可填充的数组,只包含相关的列 b)使用$request->only()仅传递请求中的必填字段 c)你为unset所做的输入中的imagesThumb类别

© www.soinside.com 2019 - 2024. All rights reserved.