-
问题描述
当使用 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 = ?