Как получить данные с отношением один к одному, используя laravel+VueJS

Как я могу показать имя пользователя с помощью внешнего ключа? У меня есть 2 таблицы: пользователей и отделов, один отдел имеет только одного начальника и пользователь может быть начальником только одного отдела. Так что я думаю, что это "отношения один к одному". таблица отделов имеет «user_id» в качестве внешнего ключа от пользователей таблицы. В vue у меня есть:

<tr v-for = "departement in departements" :key = "id" >
                <td>{{departement.id }}</td>
                <td>{{departement.name }}</td>
                <td>{{departement.user_id }}</td>
                <td>{{departement.bio }}</td>

Я хочу отобразить имя пользователя из таблицы пользователей, у которого есть user_id. Спасибо.


Не работает Контролер отдела:

public function index()
{
    return Departement::where('name','!=','admin')->latest()->paginate(100);
    $departements = Departement::with('chief')->get();
    return response()->ajax($departements, 200);
}

я прав?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
780
2

Ответы 2

Сначала нужно определить отношения.

Модальный отдел

public function chief()
{
    return $this->belongsTo('App\User', 'user_id');
}

теперь извлеките данные с загруженным отделом.

Функция контроллера

$departments = Department::with('cheif')->get();

Теперь вы можете получить доступ к конкретному Cheif объекту в department объекте.

Во Вью

<td>{{ department.cheif.name }}</td>
  1. Сделайте запрос на получение, чтобы получить пользователей
mounted () {
  axios.get('some/api/users')
  .then(res => {
    this.$set(this, 'users', this.users.reduce((accum, user) => accum[user.id] = user, {}))
    // transform the JSON to an object that maps to the user id
  })
}
  1. В вашем шаблоне
<tr v-for = "departement in departements" :key = "id" >
                <td>{{departement.id }}</td>
                <td>{{departement.name }}</td>
                <td>{{departement.user_id }}</td>
                <td>{{departement.bio }}</td>
                <td>{{users[department.user_id].name}}</td>

У меня есть данные отделов и начальника, но они не отображаются. не знаю почему!

Hichem Neggaz 20.02.2019 04:18

Когда я вижу данные в консоли навигатора, я получаю данные отдела и пользователя, у которого есть user_id, но он не отображается в таблице.

Hichem Neggaz 20.02.2019 17:33

Другие вопросы по теме