首页 > 解决方案 > 将集合转换为数组后访问关系表

问题描述

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;
}

关键是一旦集合变成数组,我只能访问表中存在的列。

标签: laravel

解决方案


您可以在执行查询时使用预先加载来预加载所有关系

TableA::with(['name_of_relation_to_eager_load','relation_1', 'relation_2' 'relation_X'])
    ->orderBy('order')->get()->toArray();

推荐阅读