我有一个人们使用的数据库。所以碰巧我更改了类的名称,但表调用相同。所以我用的是:
class Device extends Model
{
public $timestamps = false;
protected $table = 'fota_devices';
}
但我收到错误:
SQLSTATE [42S02]:未找到基表或视图:1146表' database-fota.devices'不存在(SQL:从
devices
中选择count(*)作为聚合......)
看起来表名不会被分配。
我尝试php artisan cache:clear
和composer dump-autoload
。
仍然无效。
编辑:控制器代码
class DeviceController extends Controller
{
public function store(Request $request) {
$i = 1;
$data_array = json_decode($request->data,true);
foreach ($data_array as $data) {
$validator =Validator ::make($data,[
..
]
);
if (! $validator->fails()) {
$device = new Device;
$device->create([
...
]);
$response[$i]['status'] = "Success";
}
else {
$response[$i]['status'] = "Failed";
$response[$i]["errors"] = $validator->errors()->all();
}
$response[$i]['data'] = $data;
$i++;
}
return new Response(200);
}
}
答案 0 :(得分:1)
在表名中检查模型并且表名中的MySQL数据库相同或不同。因为表格名称中的模型如下所示,每当运行查询表名称时,如下所示是不同的。
try-except
两张桌子上方都不同。
您的两个表名都是不同的 fota_devices 和设备。