SQLSTATE[42S02]: Базовая таблица или представление не найдено: 1146 Таблица "db.store" не существует

Когда я пытаюсь сохранить данные из формы laravel в таблицу базы данных, я получаю следующее исключение:

SQLSTATE [42S02]: Базовая таблица или представление не найдены: 1146 Таблица "db.store" не существует (SQL: выберите количество (*) в качестве агрегата из store где name = имя образца)

хранилище таблиц существует, но я все еще получаю сообщение об ошибке

это мой контроллер, который обрабатывает форму:

 <?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;

    use App\Http\Requests;
    use App\Http\Controllers\Controller;
    use App\storestore;
    use App\Http\Requests\storeFormRequest;



    class AddstoreController extends Controller
    {
        //

        public function create()
        {
            //

        }

        public function store( storeFormRequest $request)
        {

            $store = new Store;
            $store->name = Input::get('name');
            $store->description = Input::get('description');
            $store->store_vendor_id = Input::get('owner');
            $store->contact_email = Input::get('contact_email');
            $store->postal_address = Input::get('postal_address');
            $store->city = Input::get('city');
            $store->zip = Input::get('zip');
            $store->phone = Input::get('phone');
            $store->business_logo = Input::get('logo');
            $store->save();
            return \Redirect::route('add_store_success')
          ->with('message', 'Thanks for joining us!');
        }
    }

Это моя модель магазина:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Store extends Model
{
    //

    protected $table = 'stores';

     protected $fillable = ['name', 'description', 'vendor_id',
     'contact_email','postal_address','city','zip','phone',
     'meta_description','business_logo'];

 }

Файл StoreRequest:

<?php

namespace App\Http\Requests;

use App\Http\Requests\Request;

use App\StoreController;


class StoreFormRequest extends Request
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            //
    'name' => 'required|unique:dstore',
    'vendor_id' => 'required',
    'contact_email' => 'required|email|max:100|unique:dstore',

    'business_logo' => 'required',

        ];

         //validate
        if ($validation->fails())
        {
            return redirect()->back()->withErrors($v->errors());
        }

    }


}

Это маршруты получения и отправки:

Route::get('/store_form', ['as' => 'add_store_form', 'uses' => 'StoreController@create']);
Route::post('/store_form',['as' => 'dstore', 'uses' => 'StoreController@store']);

Оба маршрута отображаются при запуске php artisan route: list

Я пытался найти решение, но тот, на котором я приземлился, указал на пропущенные таблицы как на курс, но в моем случае таблица хранения существует, но я все еще получаю ошибку.

Любая помощь, пожалуйста!

1 ответ

Решение

Посмотри на свой Store модель класса:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Store extends Model
{
    //

    protected $table = 'stores';

     protected $fillable = ['name', 'description', 'vendor_id',
     'contact_email','postal_address','city','zip','phone',
     'meta_description','business_logo'];

}

Как вы видите собственность $table установлен в stores поэтому я предполагаю, что имя таблицы в вашей базе данных stores и не store,

Вы, вероятно, должны изменить свой StoreFormRequest содержание или rules метод для использования в unique Правило правильное имя таблицы, например:

public function rules()
{
    return [
        //
'name' => 'required|unique:stores',
'vendor_id' => 'required',
'contact_email' => 'required|email|max:100|unique:stores',

'business_logo' => 'required',

    ];

     //validate
    if ($validation->fails())
    {
        return redirect()->back()->withErrors($v->errors());
    }

}
Другие вопросы по тегам