我是Laravel的新手,遇到了一个陷阱。我尝试将两个表合并到视图中。
这是我的控制器,它引用了2个不同的模型。
// Models
use App\Models\Class_DateModel;
use App\Models\CourseModel;
class DataExcelAllController extends Controller
{
public function index() {
return view('welcome', [
'Course' => CourseModel::select('Course_Name')->get(),
'Class_Date' => Class_DateModel::select('Date', 'End_Date')->get()
]);
}
}
//Initially, I tried to concat the two tables together as such:
<tbody>
@php
$i = 0;
$MergedData = $Course->concat($Class_Date);
@endphp
<!-- Class Date -->
@forelse ($MergedData as $Data1)
<tr>
<td>{{ ++$i }}</td>
<td>{{ $Data1->Date }}</td>
<td>{{ $Data1->End_Date }}</td>
<td>{{ $Data1->Course_Name }}</td>
</tr>
@empty
<!-- What's displayed if empty -->
<tr>
<td colspan="14" style="text-align: center">No Records</td>
</tr>
@endforelse
</tbody>
但不管出于什么原因,table没有连在一起。为了说明,其中Key 1是表1的数据,而Key 2是表2的数据:
Class_DateTable->Key1,Key2,null null
Course_Table->null,null,Key1,Key2
1条答案
按热度按时间42fyovps1#
看起来好像您正在尝试合并两个不同表
CourseModel
和Class_DateModel
中的数据,并在视图中显示合并后的数据。但是,直接连接这两个集合可能无法给予所需的结果,因为它们具有不同的结构。要合并两个表中的数据,可以在控制器中使用循环来创建包含所需结构的新合并集合。下面是代码的更新版本:
在这段代码中,我们迭代
$classDates
集合,并使用相同的索引访问$courses
集合中的相应课程。然后,我们用所需的键(Date
、End_Date
和Course_Name
)创建一个新的关联数组,并将其推送到$mergedData
集合。最后,我们将
$mergedData
集合作为'MergedData'
传递给视图,您可以在视图中迭代它,如下所示: