0

Can anyone help me what is the problem of my following data insert code?

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

I have two model. One of GalleryModel and other of GalleryCategoryModel. When I use dd($request->all()); then it debugging perfect.

N.B: I am new in laravel.

GalleryModel Model

class GalleryModel extends Model
    {
        protected $table      = 'galleries';
        protected $primaryKey = 'id';
        protected $fillable   = ['title', 'description', 'image', 'category_id'];
    }

And here is my GalleryCategoryModel Model

class GalleryCategoryModel extends Model
    {
        protected $table      = 'gallery_categories';
        protected $primaryKey = 'id';
        protected $fillable   = ['name'];

    }

My controller 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', "Data has been insert success");
        return redirect()->route('galleries.index', $gallery->id);
    }

Here is my HTML code

<div class="br-section-wrapper">
      <h6 class="tx-gray-800 tx-uppercase tx-bold tx-14 mg-b-10">Create New Gallery</h6>
      {!! Form::open(array('route' => 'galleries.store', 'data-parsley-validate' => '', 'files' => true)) !!}
  {{ csrf_field() }}
    <div class="row">
      <div class="col-md-12">
        <div class="row">
          <div class="col-md-4">
            <div class="form-group margin-top15">
              <label for="title">Gallery Title: <span class="tx-danger">*</span></label>
              <input type="text" name="title" id="title" class="form-control" required>
            </div>
          </div>

           <div class="col-md-4">
             <div class="form-group margin-top15">
              <label for="category_id">Select Category: <span class="tx-danger">*</span></label>
              <select class="form-control select2 width-100" name="category_id" id="category_id" data-placeholder="Choose one" data-parsley-class-handler="#slWrapper" data-parsley-errors-container="#slErrorContainer" required>
                  <option label="Choose one"></option>
                  @foreach($categories as $category)
                    <option value="{{ $category->id }}">{{ $category->name }}</option>
                  @endforeach
                </select>
            </div>
          </div>
          <div class="col-md-4">
             <div class="form-group margin-top15">
              <label for="gallery_image">Gallery Image: <span class="tx-danger">*</span></label>
              <input type="file" name="gallery_image" id="gallery_image" class="form-control" required>
            </div>
          </div>
        </div>

        <div class="row">
          <div class="col-md-12">
            <label for="description">Description: <span class="tx-danger">*</span></label>
            <textarea name="description" id="description" class="form-control"></textarea>
          </div>
        </div>

        <div class="form-group margin-top15">
          <button type="submit" class="btn btn-info tx-11 pd-y-12 tx-uppercase tx-spacing-2">Create Gallery</button>
        </div>
      </div>
    </div>
  {!! Form::close() !!}
</div>
Mahbub
  • 49
  • 1
  • 1
  • 11
  • 4
    Isn't the error message pretty self explanatory? Does your table `gallery_categories` actually have a column called `title`? I think you're simply using the wrong model since you're trying to set `title`, `description` and `category_id` on a `GalleryCategoryModel`-object. – M. Eriksson Dec 04 '17 at 15:33
  • 1
    There are literally dozens of duplicates for this question. Please refer to them for answers. – Jay Blanchard Dec 04 '17 at 15:38
  • 1
    @Mahbub mind editing (out) the start of your comment please? it could get flagged as rude/offensive, or flagged for moderation if not done, about that *"Oh sh\*t"* one. – Funk Forty Niner Dec 04 '17 at 15:40
  • ok, well that comment of yours was flagged as being rude/offensive and just got deleted now. I'm questioning why you didn't edit it out as I politely asked you to do. – Funk Forty Niner Dec 04 '17 at 15:45
  • It works properly. Thanks @MagnusEriksson – Mahbub Dec 04 '17 at 15:47

1 Answers1

8

This is because you don't have a column named title in your gallery_categories tables.

Taha Tariq
  • 218
  • 1
  • 11