如何解决SQLSTATE[42S02]:未找到基本表或视图:1146 表 'tienda.productos' 不存在
我曾尝试更改静态 $rules
,但控制器代码对我不再适用。我也试过删除它,但我没有在表中插入记录。所以它允许,因为由于缺乏静态规则,我得到了另一个错误。
sqlSTATE[42S02]:Base table or view not found: 1146 表 'tienda.productos' 不存在 (sql: 插入'productos'('nombre','Describcion','Clasificación')
Producto.PHP
class Producto extends Model
{
use HasFactory;
static $rules = [
'nombre' => 'required','Describcion' => 'required','Clasificación' => 'required',];
protected $filliable = ['nombre','Clasificación'];
}
迁移
class Productos extends Migration
{
public function up()
{
Schema::create('producto',function (Blueprint $table) {
$table->id();
$table->string('nombre');
$table->string('Describcion');
$table->text('Clasificación');
$table->timestamps();
});
}
}
但是我需要控制器的静态 $rules
,因为我无法删除它。下面是控制器代码,您可以看到我使用的是静态 $rules
。
ProductoController
namespace App\Http\Controllers;
use App\Models\Producto;
use Illuminate\Http\Request;
class ProductoController extends Controller
{
这是 $rules
变量。
public function store(Request $request)
{
request()->validate(Producto::$rules);
$producto = Producto::create($request->all());
return redirect()->route('productos.index')
->with('success','Producto created successfully.');
return redirect()->route('productos.index2')
->with('success','Producto created successfully.');
}
这是 $rules
变量。
public function update(Request $request,Producto $producto)
{
request()->validate(Producto::$rules);
$producto->update($request->all());
return redirect()->route('productos.index')
->with('success','Producto updated successfully');
}
非常感谢您的帮助,我会尽快回复,并对书面文字表示抱歉;我的英语说得或写得不好。
解决方法
根据laravel 文档,表名应该是模型名的复数。 https://laravel.com/docs/8.x/eloquent#table-names
如果你想为模型提供自定义表名,你可以按照模型中的代码进行操作。
受保护的 $table = 'producto';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。