微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel 查询 Mysql 表结构:Undefined property: stdClass::$column_name when generating a model

  • 问题描述

       当使用 getRealColumn 时,报处出该错误 Undefined property: stdClass::$column_name when generating a model。

       参考 https://github.com/laravel/framework/issues/20190

       Laravel 的 MysqLProcessor 假定从 MysqL 中获得的 column_name 是小写的。

       当执行 MySqlGrammar 的 compileColumnListing() 或者 compileColumnExisting() 方法时,实际执行了下面 sql 语句

select * from information_schema.tables where table_schema = ? and table_name = ?

       返回结果包含了大写的 COLUMN_NAME 字段,造成了 Laravel 无法找到 column_name 而报错。因此修改该 sql获取小写字段即可:

select column_name as `column_name` from information_schema.tables where table_schema = ? and table_name = ?

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。