当我尝试使用Laravel 5将数据保存到mysql时出现此错误,其他表单和save()方法工作正常但是这个:
public function store(CotFormRequest $request)
{
$quote = new Cotizacion;
$quote->customer_id = Input::get('data.clientid');
$quote->total = Input::get('data.totalAftertax');
$quote->save();
}
这是我的Controller存储方法:
<?php namespace App\Models\Cotizacion;
use Illuminate\Database\Eloquent\Model;
class Cotizacion extends Model {
}
这是我的模特:
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
我必须忽视一些非常明显的事情,因为我无法理解为什么Laravel会添加一个&#34; S&#34;该表是cotizacion而不是cotizacions。
我该如何解决这个问题?
答案 0 :(得分:82)
我猜Laravel无法确定您用于表名的复数形式。
只需在模型中指定您的表格:
class Cotizacion extends Model{
public $table = "cotizacion";
答案 1 :(得分:6)
我在laravel 5.2中也遇到了这个问题,如果声明表名不起作用,可能是因为你在Request中的验证代码中有一些错误的声明或错误(如果你使用的话)
答案 2 :(得分:5)
检查您的迁移文件,也许您正在使用Schema :: table,如下所示:
Schema::table('table_name', function ($table) {
// ...
});
如果要创建新表,则必须使用Schema :: create:
Schema::create('table_name', function ($table) {
// ...
});
答案 3 :(得分:1)
只需运行命令:
php artisan migrate:refresh --seed
答案 4 :(得分:0)
如果您的错误与
问题无关Laravel无法确定您所用单词的复数形式 表名。
仍然有此错误,请尝试我的方法。您应该在默认的“ AppServiceProvider.php” 中找到问题或其他 专门为该应用程序定义的服务提供商,或者甚至在App \ Console
中的 Kernel.php 中定义的服务提供商这个错误对我来说是偶然的,我暂时解决了它,但仍然无法弄清确切的来源和描述。
在我的情况下,导致我的表无法迁移的主要问题是我在boot()方法的“ PermissionsServiceProvider.php” 上运行了代码/查询。
以同样的方式,也许您在 AppServiceProvider.php 的boot()方法或Kernel.php
中定义了一些内容因此,首先检查您的Serviceproviders并禁用一段时间,然后运行php artisan migration,然后撤消代码中的更改。
答案 5 :(得分:0)
在执行php artisan migration:refresh --seed命令后,执行迁移=>时我也遇到了这个问题
“找不到基本表或视图:1146表帖子不存在” 我解决了这个问题,我在一个单独的迁移文件中使用了“软删除”,并且在数据库中的“软删除”迁移之后,负责创建“ posts”表的“ posts”表的原始迁移正在执行\迁移文件夹,我只需要重命名“ posts”迁移文件名,并将其放在“ softdeletes”迁移之前即可执行。 再次进行迁移=> php artisan migration:refresh --seed 完成。
答案 6 :(得分:0)
当您在controller方法中传递自定义请求时,并且您的请求文件未遵循正确的语法或表名已更改,请通过这种类型的laravel。我将在示例中向您展示。
My Request code.
public function rules()
{
return [
'name' => 'required|unique:posts|max:50',
'description' => 'required',
];
}
But my table name is todos not posts so that's why it through "Base table or view not found: 1146 Table Laravel 7
I forgot to change the table name in first index.
public function rules()
{
return [
'name' => 'required|unique:todos|max:50',
'description' => 'required',
];
}
答案 7 :(得分:0)
由于拼写错误或未定义的数据库名称,导致出现此问题。确保您的数据库名称,表名称和所有列名称与phpmyadmin中的相同。
谢谢