我正在尝试在两列(record_id和table_name,
)上实现关系这是我到目前为止所获得的,型号名称BatteryAssets:
public function Attachments()
{
return $this->hasMany('App\Attachments','record_id','id')->where('tabel_name','`battery_assets`');
}
请注意'battery_asstes'是一个字符串,因此它不是动态的,我正在尝试将其设为字符串,但会出现以下错误:
QueryException in Connection.php line 761:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'tabel_name' in 'where clause' (SQL: select * from `attachments` where `attachments`.`record_id` = 1 and `attachments`.`record_id` is not null and `tabel_name` = `battery_assets`)
如你所见,我已经尝试将battery_assets放入``而且我试图将它们放入双引号'“battery_assets”'并且也没有引号
并且请不要说BatteryAssets表没有table_name列,我只想在where子句中使用它作为静态值,我也试过做
->where('attachments.tabel_name','"battery_assets"');
但它给出了同样的错误
答案 0 :(得分:0)
该错误表示Colomn未找到,您要尝试的列名称为'被称为' tabel_name'。您确定列名称不是' table_name'? (用英语表,而不是荷兰语,至少我认为你是荷兰人)
所以它应该是:
public function Attachments()
{
return $this->hasMany('App\Attachments','record_id','id')->where('table_name','`battery_assets`');
}
如果您的专栏被调用' tabel_name'在您的数据库中。我建议使用英文命名,因为' name'是英文。
答案 1 :(得分:0)
有一个拼写错误,现在一切正常:
public function Attachments()
{
return $this->hasMany('App\Attachments','record_id','id')->where('table_name','battery_assets');
}