SQLSTATE[42S22]: Column not found: 1054 Unknown column 'title' in 'field list' in Laravel 5.4 在Laravel 5.4中,出现SQLSTATE[42S22]错误:找不到列: 1054 在字段列表中的未知列'title'。

14 浏览
0 Comments

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'title' in 'field list' in Laravel 5.4 在Laravel 5.4中,出现SQLSTATE[42S22]错误:找不到列: 1054 在字段列表中的未知列'title'。

有人能帮我解决以下数据插入代码的问题吗?

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'title' in 'field list' (SQL: insert into gallery_categories (title, description, category_id, image, updated_at, created_at) values (Test title, Test details, 1, 1512370315.jpg, 2017-12-04 06:51:55, 2017-12-04 06:51:55))

我有两个模型。一个是GalleryModel,另一个是GalleryCategoryModel。当我使用dd($request->all())进行调试时,一切都正常。

注意:我是laravel的新手。

GalleryModel模型如下:

class GalleryModel extends Model

{

protected $table = 'galleries';

protected $primaryKey = 'id';

protected $fillable = ['title', 'description', 'image', 'category_id'];

}

这是GalleryCategoryModel模型:

class GalleryCategoryModel extends Model

{

protected $table = 'gallery_categories';

protected $primaryKey = 'id';

protected $fillable = ['name'];

}

我的控制器GalleriesController如下:

public function create()

{

$categories = GalleryCategoryModel::all();

return view('pages.backend.galleries.create')->withCategories($categories);

}

public function store(StoreGalleryRequest $request)

{

$gallery = new GalleryCategoryModel;

$gallery->title = $request->title;

$gallery->description = $request->description;

$gallery->category_id = $request->category_id;

if($request->hasFile('gallery_image')){

$image = $request->file('gallery_image');

$filename = time() . '.' . $image->getClientOriginalExtension();

$location = public_path('assets/backend/images/' . $filename);

Image::make($image)->resize(500, 350)->save($location);

$gallery->image = $filename;

}

$gallery->save();

Session::flash('success', "数据插入成功");

return redirect()->route('galleries.index', $gallery->id);

}

这是我的HTML代码:

创建新相册

{!! Form::open(array('route' => 'galleries.store', 'data-parsley-validate' => '', 'files' => true)) !!}

{{ csrf_field() }}

{!! Form::close() !!}

0
0 Comments

原因:你的gallery_categories表中没有名为title的列。

解决方法:在gallery_categories表中添加名为title的列。

代码示例:

ALTER TABLE gallery_categories ADD title VARCHAR(255) NOT NULL;

注意:根据实际情况修改列的数据类型和长度。

在Laravel中使用迁移来添加列:

1. 创建一个新的迁移文件:

php artisan make:migration add_title_to_gallery_categories --table=gallery_categories

2. 在生成的迁移文件中,使用Schema类的addColumn方法来添加列:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddTitleToGalleryCategories extends Migration
{
    public function up()
    {
        Schema::table('gallery_categories', function (Blueprint $table) {
            $table->string('title')->after('id');
        });
    }
    public function down()
    {
        Schema::table('gallery_categories', function (Blueprint $table) {
            $table->dropColumn('title');
        });
    }
}

3. 运行迁移:

php artisan migrate

这样就能解决SQLSTATE[42S22]: Column not found: 1054 Unknown column 'title' in 'field list'的问题了。

0