Я получаю эту ошибку, когда пытаюсь сохранить данные в mysql, используя Laravel 5, другие формы и методы save () работают нормально, но этот:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'sistemal5.cotizacions' doesn't exist (SQL: insert into `cotizacions` (`customer_id`, `total`, `updated_at`, `created_at`) values (1501, 150.69, 2015-05-11 03:16:25, 2015-05-11 03:16:25))
Вот мой метод хранения контроллера:
public function store(CotFormRequest $request) { $quote = new Cotizacion; $quote->customer_id = Input::get('data.clientid'); $quote->total = Input::get('data.totalAftertax'); $quote->save(); }
И вот моя модель:
<?php namespace App\Models\Cotizacion; use Illuminate\Database\Eloquent\Model; class Cotizacion extends Model { }
Я должен упускать из виду что-то действительно очевидное, потому что я не могу понять, почему Laravel добавляет «S», таблица – это cotizacion, а не cotizacions.
Как я могу устранить эту проблему?
Я предполагаю, что Laravel не может определить множественную форму слова, которое вы использовали для имени вашей таблицы.
Просто укажите таблицу в модели как таковую:
class Cotizacion extends Model{ public $table = "cotizacion";
Я тоже столкнулся с этой проблемой в laravel 5.2, и если объявление имени таблицы не работает, возможно, потому, что у вас есть неправильное объявление или ошибка в коде проверки в запросе (если вы используете его)
Джеймс Спенс прав, также случилось со мной. Я использовал столовые компании, и laravel поменял его на компании, которых не было. Греппинг не обнаружил окоренности «компаний».
Этот намек – это спасательная жизнь, это сводило меня с ума: P