mysql - laravel 5 关系在两列上有很多

标签 mysql laravel laravel-4 laravel-5

我正在尝试在两列(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"');

但它给出了相同的错误

最佳答案

错误显示未找到 Colomn,您尝试“调用”的列名称称为“tabel_name”。您确定列名不是“table_name”吗? (表格是英语而不是荷兰语,至少我认为你是荷兰人)

所以应该是:

public function Attachments()
    {
       return $this->hasMany('App\Attachments','record_id','id')->where('table_name','`battery_assets`');
    }

如果您的列在数据库中名为“tabel_name”。我建议使用英文命名,因为“name”是英文。

关于mysql - laravel 5 关系在两列上有很多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39898080/

相关文章:

mysql - Flyway 4.0 命令行创建空元数据表

mysql - SQL 'LIKE BINARY' 比普通 'LIKE' 慢吗?

php - 构建数据库模式 Laravel4 与 Symfony2

mysql - SQL 语句 Prestashop

MySQL bool 匹配短语不起作用

javascript - 获取 laravel 应用程序的语言环境

php - Laravel 听起来像魔法

javascript - 使用 vue axios 加载 Laravel View

macos - Mac OS X上需要Mcrypt PHP扩展

php - Laravel 选择性缓存