就像标题所说的那样,我在查询和Laravel方面遇到问题。由于某些原因,前缀“ dev_”被添加到我的列名中(仅列名,而不是表名或其他)。当然会导致以下错误,因为该列没有“ dev_”前缀该问题发生在运行Apache和Laravel 5.0.18的Ubuntu服务器上。我将其设置为可以处理多个数据库(一个数据库用于生产,一个数据库用于开发)。这是我的config / database.php的连接...'default' => 'mysql','connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'database' => storage_path().'/database.sqlite', 'prefix' => '', ], 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, ], 'mysqldev' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DEV_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, ], ]...生产数据库(mysql)和开发数据库(mysqldev)在表,列等方面是相同的...我通过雄辩的模型在我的api中使用它们(每次一个模型用于prod,一个模型用于dev)为我的开发api设置了路由组前缀,该路由组的前缀与prod api相同,但使用的是开发模型。对于prod API来说,它工作得非常好,但是在dev API上,发生了上述问题。
1 回答

鸿蒙传说
TA贡献1865条经验 获得超7个赞
您的模型名称是DevUser
,但是您正在user_id
数据库中使用它。如果您未明确指定用于关系的列,Laravel将尝试猜测它的dev_user_id
来源。定义您的关系,如下所示:
在DevSave.php
:
public function user(){ return $this->belongsTo('pgc\DevUser', 'user_id');}
或者考虑dev
在您的关系名称中使用,例如public function devUser()
等等。
您的代码在生产环境中起作用的原因是您使用的是User
,而不是DevUser
,因此Laravel正确地猜测这user_id
是您要在关系中使用的列。
- 1 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消