laravel - 将集合转换为数组后访问关系表
问题描述
toArray()
从数据库获取结果时使用函数后是否可以继续访问关系表?
$db_results = TableA::orderBy('order')->get()->toArray();
$db_results = array_slice($db_results, $parameter_number);
foreach($db_results as $db_result) {
if($db_result['user' /* it's connected with user table over use_id */]) continue;
//do_something;
}
关键是一旦集合变成数组,我只能访问表中存在的列。
解决方案
您可以在执行查询时使用预先加载来预加载所有关系
TableA::with(['name_of_relation_to_eager_load','relation_1', 'relation_2' 'relation_X'])
->orderBy('order')->get()->toArray();
推荐阅读
- python - 检查用户是否在完全不同的服务器中具有角色
- javascript - 如何防止倒数计时器将文本推到它旁边
- oracle - 如何通过将一行与其下一行进行比较来填充新列
- javascript - 如何显示 Github 存储库的贡献者
- java - 如何在 Spring 的静态字段中注入值?
- gcc - MSYS2环境的使用
- java - 如何从另一个活动中调用一个活动的方法?
- firebase - 将文件上传到 Firebase 存储时出现“任务尚未完成”错误
- angular - 使用 angular-auth-oidc-client 的 Cognito OpenId 刷新令牌
- node.js - MongoDB Node.js 驱动程序 4.0.0:Vercel 生产中的光标会话 id 问题