json - Laravel 8 在 eloquent 查询中获取 SQL 错误,同时获取两个相关表的嵌套 JSON 响应
问题描述
我遇到 SQL 错误,模型名称正在连接两个表,列名称返回 'i_t_e_m__l_o_c__m_d_l_LOC_ID' 而不是 'LOC_ID'
Illuminate\Database\QueryException: SQLSTATE[42S22]:
[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Invalid column name 'i_t_e_m__l_o_c__m_d_l_LOC_ID'.
(SQL: select * from [tblDepartment] where [tblDepartment].[i_t_e_m__l_o_c__m_d_l_LOC_ID] in (1, 2))
这是我的模型代码
protected $primarykey = 'LOC_ID';
protected $connection = 'sqlsrv';
protected $table = 'tblLocation';
public function departments()
{
return $this->hasMany(departmentsModel::class);
}
这是给控制器的
public function allLoc(Request $request){
$data = locationModel::with('departments')->get();
return response()->json($data);
解决方案
在关系函数中定义外键
public function departments()
{
return $this->hasMany(Comment::class, 'foreign_key', 'local_key');
}
有关更多详细信息,请查看:laravel.com/docs/8.x/eloquent-relationships#one-to-many
推荐阅读
- python - 从数据结构中返回多行
- python - Pandas 转移到非 NaN 值并检查是否重复输入
- typescript - VSCode 和 Typescript:“没有找到...的类型定义”
- python - 如何清除未解决的导入'cv2'错误?
- wordpress - Wordpress 翻译搜索查询并链接到外部 url
- c++ - 管道第二次卡住
- ios - 在来自 Cloud Firestore 的颤振应用程序上显示图标
- javascript - 为什么我的 express Router 中间件会执行多次?
- javascript - React Native:AWS 放大要求我点击两次“federatedSignIn”才能让谷歌成功
- javascript - Meteor 和 Socket IO - 不存在“Access-Control-Allow-Origin”标头