大家。新年快乐!今天我在解决这个问题时遇到了问题:
无法解析类“FacturadorVirtual \ Modelos \ Seguridad \ Usuario”的列“id_usuario”的类型
对于某些人来说,这个错误只出现在linux环境中。在Windows中,没问题。究竟是什么问题?看起来PlanAdquirido
未通过关系id_usuario
找到列$adquiridoPor
。再说一次:这个错误只在linux环境中触发。
Usuario实体:
<?php
namespace FacturadorVirtual\Modelos\Seguridad;
use Illuminate\Contracts\Auth\Authenticatable;
/**
* @entity
* @table(name="usuarios")
*/
class Usuario implements Authenticatable
{
/**
* @id
* @var integer
* @column(type="integer", name="id_usuario")
* @generatedValue(strategy="AUTO")
*/
protected $id;
}
PlanAdquirido实体:
<?php
namespace FacturadorVirtual\Modelos\Planes;
use Doctrine\Common\Collections\ArrayCollection;
use FacturadorVirtual\Modelos\Seguridad\Usuario;
/**
* @entity
* @table(name="planes_adquiridos")
*/
class PlanAdquirido
{
/**
* @id
* @var integer
* @column(type="integer", name="id_plan")
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var Usuario
* @ManyToOne(targetEntity="FacturadorVirtual\Modelos\Seguridad\Usuario")
* @JoinColumn(name="adquirido_por", referencedColumnName="id_usuario")
*/
protected $adquiridoPor;
}
如果我在Windows中运行"vendor/bin/doctrine.bat" orm:validate-schema
,我会得到:
Mapping
-------
[OK] The mapping files are correct.
但是在linux中我得到了:
Mapping
-------
[FAIL] The entity-class FacturadorVirtual\Modelos\Planes\PlanAdquirido mapping is invalid:
* The referenced column name 'id_plan' has to be a primary key column on the target entity class 'FacturadorVirtual\Modelos\Planes\PlanAdquirido'.
* The referenced column name 'id_usuario' has to be a primary key column on the target entity class 'FacturadorVirtual\Modelos\Seguridad\Usuario'.
从FacturadorVirtual \ Modelos \ Planes \ PlanAdquirido到FacturadorVirtual \ Modelos \ Seguridad \ Usuario的关系引用的列名
id_usuario
不存在。
我不知道我是否遗漏了一些东西,但是我有两天时间试图找出为什么不能在linux中工作(生产将在那里工作)。
答案 0 :(得分:0)
今天我找到了答案。问题是redi的缓存。每次项目更新时,我都会运行clear cache命令:
body{
overflow:hidden;
margin:0;
}
#blue{
background-color:blue;
width:100vw;
height:100vh;
}
#red{
background-color:red;
width:100vw;
height:100vh;
}
#green{
background-color:green;
width:100vw;
height:100vh;
}
我认为这个命令已经清除了缓存,但事实并非如此。要正确清除缓存,只需运行:
$(document).ready(function(){
$(document).scroll(function(){
$('body').animate({'scrollTop':'1000'},3000);
});
});
从那时起,一切都很棒!