我有几个人用的数据库。因此,我更改了类的名称,但是表的名称是相同的。所以我用的是:
class Device extends Model
{
public $timestamps = false;
protected $table = 'fota_devices';
}
但我错了:
SQLSTATE42S02:基本表或视图未找到: 1146表‘数据库-fota.设备’不存在(SQL:选择count(*)作为
devices
的聚合,其中.)
表名似乎没有分配。我试过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);
}
}
发布于 2018-03-07 10:00:51
一旦检查表名中的模型和表名中的MySQL数据库相同或different.Because,表名中的模型如下所示,无论何时运行查询表名称都与下面不同。
protected $table = 'fota_devices';
Query :- select count(*) as aggregate from devices where ....)
以上两张表各不相同。
您的两个表名分别是、fota_devices、和devices。
https://stackoverflow.com/questions/49146994
复制相似问题