Всем привет!
Имеется такой контроллер со следующим кодом:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
class LectViewController extends Controller
{
public function index(){
$lecturers = DB::table('Преподаватели')->select('id_Преподавателя', 'ФИО')->get();
$id = $lecturers->with('id_Преподавателя')->get();
$name = $lecturers->with('ФИО')->get();
return view('account')
->with(compact('id'))
->with(compact('name'));
}
}
Имеется таблица с информацией о преподавателях. В данном случае, я делаю запрос на получение таблицы с двумя столбцами:
id_Преподавателя и
ФИО. Всё работает прекрасно, но мне необходимо из массива $lecturers по отдельности взять столбцы и записать их в два других массива:
$id и
$name. Т.е. чтобы было 2 массива столбцов.
Зачем? Нужно передать их в Vue компонент. Его код такой:
<template>
<table class="ViewData">
<thead>
<tr>
<th>ID</th>
<th>ФИО</th>
</tr>
</thead>
<tbody>
<tr v-for="info in lecturers">
<td>{{info.id}}</td>
<td>{{info.name}}</td>
</tr>
</tbody>
</table>
</template>
<script>
export default {
name: "ViewTable",
props: [
'lecturers'
]
}
</script>
<style scoped>
</style>
Смотрел различную информацию в интернете по поводу передачи информации данных из Laravel в Vue, но везде сами печатают информацию, по типу такого:
$data = [
['id' => 1, 'name' => 'Admin'],
['id' => 2, 'name' => 'Truehero'],
['id' => 3, 'name' => 'Truecoder'],
];
return view('test', ['data' => $data]);
Т.е. тут нам известно всё, но что делать, когда мы этого не знаем и лезем в БД за данными? Как получить два столбца отдельно из массива
$lecturer?