我试图更改静态$rules
,但控制器代码不再适用。我也试图删除它,但我没有将记录插入表中。所以它允许,因为我得到了另一个错误,由于缺乏静态规则。
SQLSTATE[42S02]:找不到基表或视图:1146表'tienda.productos'不存在(SQL:插入"productos"("ombre"、"Description"、"Lasificación"(
Producto.php
class Producto extends Model
{
use HasFactory;
static $rules = [
'nombre' => 'required',
'Describcion' => 'required',
'Clasificación' => 'required',
];
protected $filliable = ['nombre', 'Describcion', '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
。
产品控制器
namespace AppHttpControllers;
use AppModelsProducto;
use IlluminateHttpRequest;
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-名称
若要为模型提供自定义表名,可以按照模型中的代码执行。
protected$table='producto';