Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 12.05.2019 19:54:59

Как получить данные из двух таблиц с использованием Eloquent?

Laravel 5.8.15
PHP 7.2

Имеются три таблицы:

users

id
name
email
password

users_has_roles

id
user_id
role_id

roles

id
role

Имеются модели:
Users

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable;
use Auth;

class Users extends Model implements Authenticatable
{
    use \Illuminate\Auth\Authenticatable;

    public function role()
    {
      return $this->belongsToMany('App\Roles', 'users_has_roles', 'id', 'role_id');
    }
}

Roles

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Roles extends Model
{
    public function user()
    {
      return $this->belongsToMany('App\Users', 'users_has_roles', 'role_id', 'id');
    }
}

Что-то схожее представлено в оригинальной документации к Laravel.

Я прошу не тыкать меня носом в документацию.
Просто объясните, пожалуйста, как я могу обратившись к

$user = User()::find(1);

получить все роли пользователя с нужным мне id?
Я понимаю, что это выглядит так, будто бы я не читал документацию и т.п. Но у меня просто не получается получить то, что я хочу. Хотелось бы увидеть ответ знающих людей.

Не в сети

#2 13.05.2019 06:17:24

Re: Как получить данные из двух таблиц с использованием Eloquent?

Я понимаю, что это выглядит так, будто бы я не читал документацию и т.п.

вообще-то именно так и выглядит. знающие люди писали документацию.

подсказка: читая документацию обрати внимание в каких случаях вызов идет как ->xxx, а в каких ->xxx()
попробуй и запомни. рекомендую также экспериментировать с такими штуками в консоли: laravel tinker

Изменено artoodetoo (13.05.2019 06:22:03)


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

Подвал раздела