这是什么错误?我试了9.5个小时,但是我收到了一个错误。
SQLSTATE [42S22]:未找到列:1054未知列'类别' '字段列表'(SQL:更新
articles
设置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>
我想编辑文章表单。
答案 0 :(得分:0)
如果您的请求中有类别作为字段,并且未被$fillable
数组过滤,则即使您没有类别列,该字段也会传递到数据库表进行存储。
任一;
a)创建一个可填充的数组,只包含相关的列
b)使用$request->only()
仅传递请求中的必填字段
c)您为unset
imagesThumb
类别